time="2024-06-14T16:39:34Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-authorization-1 Creating Container integration-test-federation-1 Creating Container integration-test-authentication-1 Creating Container integration-test-experiment-1 Creating Container integration-test-device-1 Creating Container integration-test-gateway-1 Creating Container integration-test-authentication-1 Created Container integration-test-gateway-1 Created Container integration-test-device-1 Created Container integration-test-federation-1 Created Container integration-test-experiment-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"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} federation-1 | {"level":"info","message":"Federation Service started successfully"} authorization-1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2024-06-14T16:40:15Z"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} device-1 | {"level":"info","message":"Device Service started successfully"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:56226","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-06-14T16:40:16Z"} authorization-1 | {"client_addr":"127.0.0.1:56226","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.570669,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:16Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1718383216.3857856} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1718383216.3864517} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1718383216.3864899} 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":1718383216.3865204} 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":1718383216.3865414} 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":1718383216.3865874,"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":1718383216.388259} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1718383216.3890803} 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:33742","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-06-14T16:40:16.414516698Z","id":"01J0BSY1RYT7WN3JGK2Q67HCF2","name":"crosslab","updated_at":"2024-06-14T16:40:16.414516698Z"},"request_id":"38a65c13-243b-46ae-bdff-07c433a8a2a3","subsystem":"openfga","timestamp":1718383216.414611} 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:33742","raw_request":{"schema_version":"1.1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01J0BSY1T6CJB6VAB3R87H0XY9"},"request_id":"054955a8-df25-49b1-ae88-aa31e5a8cf18","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383216.4547453} authorization-1 | {"client_addr":"127.0.0.1:56226","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-06-14T16:40:16Z"} authorization-1 | {"client_addr":"127.0.0.1:56226","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.215883,"resp_status":204,"subsystem":"opa","time":"2024-06-14T16:40:16Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.65.0/opa_linux_amd64","latest_version":"0.65.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.65.0","subsystem":"opa","time":"2024-06-14T16:40:16Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:18 +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.016","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"9da5fd03324582db407aa445180fe178"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 11ms","method":"HEAD","requestID":"9da5fd03324582db407aa445180fe178","responseTime":11,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"14/Jun/2024:16:40:18 +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.013","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"6aa4efd45b2051d1a99aeed54b90f9b7"} device-1 | {"level":"info","message":"HEAD /device/status 200 9ms","method":"HEAD","requestID":"c9022410-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"14/Jun/2024:16:40:18 +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.009","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"bab99139ae8133027b72715e5b9f537b"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 3ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"bab99139ae8133027b72715e5b9f537b"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:40:18 +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.015","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"fe8dbab23cb2a9b9ed8d787add34b2b7"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 10ms","method":"HEAD","requestID":"c907c960-2a6c-11ef-8af0-d955b52a1c7c","responseTime":10,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"14/Jun/2024:16:40:18 +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.015","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"e9bbbccadee679ac5c9aaca626ebb697"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 9ms","method":"HEAD","requestID":"c90b24c0-2a6c-11ef-8296-8740352e3d95","responseTime":9,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"14/Jun/2024:16:40:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"452b2bfeaf5567548f9b49ce6a815f73"} authentication-1 | {"level":"info","message":"POST /login 201 143ms","method":"POST","requestID":"452b2bfeaf5567548f9b49ce6a815f73","responseTime":143,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyMX0.YIla_daZPYzK4aoGNe0f7KsZG5xLqeH3Y6eytNhE5pc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"95b9cddfc65baa695d2b5e35386e0aae","responseTime":23,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:22Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.249193,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383221,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyMX0.YIla_daZPYzK4aoGNe0f7KsZG5xLqeH3Y6eytNhE5pc"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95b9cddfc65baa695d2b5e35386e0aae"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":32}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0635f931-d29f-4999-bfe1-4820b7823914","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.1181192} 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":"95b9cddfc65baa695d2b5e35386e0aae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb135989-8304-4903-bbec-01f9001fb49b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.1350245} 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":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95b9cddfc65baa695d2b5e35386e0aae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"8827629b-3a2f-42f5-939a-0fa8b3b313a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.1527042} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5aa7843b-25f9-498c-97a3-846685bc14ed","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.1539357} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95b9cddfc65baa695d2b5e35386e0aae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.152612326Z"}]},"request_id":"45ae54d1-b4b4-49b3-a562-b2a81894388c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.1614308} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95b9cddfc65baa695d2b5e35386e0aae"},"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":"14/Jun/2024:16:40: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.292","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"95b9cddfc65baa695d2b5e35386e0aae"} device-1 | {"level":"info","message":"POST /devices? 201 247ms","method":"POST","requestID":"95b9cddfc65baa695d2b5e35386e0aae","responseTime":247,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyMn0.lrUqRPeuIoZnb4hxLs5dXscWeGGvu1VZWz1Q-VHDSyA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"727c001d6ae0ac225194dddc8f69436f","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:22Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.83813,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383222,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyMn0.lrUqRPeuIoZnb4hxLs5dXscWeGGvu1VZWz1Q-VHDSyA"} 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":"727c001d6ae0ac225194dddc8f69436f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a0cf394a-e23a-4bdb-8598-84a939936794","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.2200766} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"727c001d6ae0ac225194dddc8f69436f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9bf7cced-faf4-4903-a26f-a1c150611219","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.230581} 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":"727c001d6ae0ac225194dddc8f69436f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"140bc750-f180-4f8b-9880-973a542179b2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.2477922} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e34d1f5-f4ba-4a47-8f18-221668a7df7e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.2481246} 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":"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":"727c001d6ae0ac225194dddc8f69436f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.247774828Z"}]},"request_id":"32632410-44e3-46b9-acb3-fe10422eff8b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383222.256999} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"727c001d6ae0ac225194dddc8f69436f"},"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":"14/Jun/2024:16:40: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.074","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"727c001d6ae0ac225194dddc8f69436f"} device-1 | {"level":"info","message":"POST /devices? 201 66ms","method":"POST","requestID":"727c001d6ae0ac225194dddc8f69436f","responseTime":66,"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":"9886d519a3944c8bf37b43f0ee7be429","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/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":"9886d519a3944c8bf37b43f0ee7be429"} device-1 | {"level":"info","message":"OPTIONS /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/websocket 200 2ms","method":"OPTIONS","requestID":"9886d519a3944c8bf37b43f0ee7be429","responseTime":2,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/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 2ms","method":"GET","requestID":"48854b9dde000581c7085af766874c2d","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.008","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"48854b9dde000581c7085af766874c2d"} device-1 | {"level":"info","message":"OPTIONS /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/websocket 200 2ms","method":"OPTIONS","requestID":"48854b9dde000581c7085af766874c2d","responseTime":2,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"921dad3340d30cffff8103058bc23eb9","responseTime":10,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"c8df47d13becd6e4e176db5ad7a222d0","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761689,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"921dad3340d30cffff8103058bc23eb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.378583,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"c8df47d13becd6e4e176db5ad7a222d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/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":"c8df47d13becd6e4e176db5ad7a222d0"} device-1 | {"level":"info","message":"POST /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/websocket 200 38ms","method":"POST","requestID":"c8df47d13becd6e4e176db5ad7a222d0","responseTime":38,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.062","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"921dad3340d30cffff8103058bc23eb9"} device-1 | {"level":"info","message":"POST /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/websocket 200 48ms","method":"POST","requestID":"921dad3340d30cffff8103058bc23eb9","responseTime":48,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7ba4f3b9a366dfb4b1ad86ea5cc3fe5a","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.292535,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"7ba4f3b9a366dfb4b1ad86ea5cc3fe5a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.152612326Z"}]},"request_id":"1ae9b8fb-0208-4d5f-ba74-66e770b8df7e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.4220777} 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":"7ba4f3b9a366dfb4b1ad86ea5cc3fe5a"},"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":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ba4f3b9a366dfb4b1ad86ea5cc3fe5a"} device-1 | {"level":"info","message":"GET /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b? 200 37ms","method":"GET","requestID":"7ba4f3b9a366dfb4b1ad86ea5cc3fe5a","responseTime":37,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"c98fcbf5df5830fc77c793d0621b61ef","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.431444,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"c98fcbf5df5830fc77c793d0621b61ef"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.247774828Z"}]},"request_id":"d8df4a82-6894-4a92-b363-752c4f2e2170","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.4711885} 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":"c98fcbf5df5830fc77c793d0621b61ef"},"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":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 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":"c98fcbf5df5830fc77c793d0621b61ef"} device-1 | {"level":"info","message":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 200 28ms","method":"GET","requestID":"c98fcbf5df5830fc77c793d0621b61ef","responseTime":28,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"83b659b8913d88424636959f1c327038","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:57580","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.770172,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"83b659b8913d88424636959f1c327038"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"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:57580","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661977,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"cc73a420-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.7786,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"cc73f240-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.152612326Z"}]},"request_id":"4cf5d21d-0518-4778-a3a8-c807e0c912b3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.6867719} 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":"cc73a420-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.247774828Z"}]},"request_id":"15fc6a8d-475f-4565-adc1-ded8563bcec7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.692328} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cc73f240-2a6c-11ef-91df-9f2f583abbec"},"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/ce91dc60-3617-4b80-b83f-9141d2bbd15b? 200 24ms","method":"GET","requestID":"cc73a420-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 200 24ms","method":"GET","requestID":"cc73f240-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"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/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756996,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"cc827130-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.984068,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"cc82bf50-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.951687,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a2d867c-8d97-4365-906f-e88630e52a5f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.7867837} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","rebac_allow":false,"scope_allow":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":"cc830d70-2a6c-11ef-91df-9f2f583abbec"},"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/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling 200 21ms","method":"POST","requestID":"cc830d70-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.247774828Z"}]},"request_id":"8a94a317-c78e-4e2c-9003-0ddcd7e8db1d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.7951043} 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":"cc82bf50-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.152612326Z"}]},"request_id":"38f74117-9bf5-4644-a374-8fb6548d1aca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.797403} 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":"cc827130-2a6c-11ef-91df-9f2f583abbec"},"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":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fddaed3fa-cdb5-4d43-81fb-234d53bd96da#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fddaed3fa-cdb5-4d43-81fb-234d53bd96da","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"3a9fc02d-b366-4a72-80d8-3f29a222b7ee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8048704} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ce2b4d9c-65d7-4f6c-ab3c-36a03f02e827","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8051445} device-1 | {"level":"info","message":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 200 33ms","method":"GET","requestID":"cc82bf50-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b? 200 37ms","method":"GET","requestID":"cc827130-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 26ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83b659b8913d88424636959f1c327038"},"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:57580","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f63b1ea8-2819-4c5c-9b05-d319c75514cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8149197} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.857678,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","rebac_allow":false,"scope_allow":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":"cc875330-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea023ef3-c22f-455b-8c38-56b9d44284a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8191915} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.081294,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","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":"POST /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling 200 19ms","method":"POST","requestID":"cc875330-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling"} 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":"cc88d9d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling 200 12ms","method":"POST","requestID":"cc88d9d0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.338","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"83b659b8913d88424636959f1c327038"} experiment-1 | {"level":"info","message":"POST /experiments? 201 317ms","method":"POST","requestID":"83b659b8913d88424636959f1c327038","responseTime":317,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bcccad5cac74ebb3e53b98b94084bce1","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2ba240a6-01e8-47e1-8907-825e8871e69d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8369246} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.313165,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","rebac_allow":false,"scope_allow":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":"cc8b98f0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650751,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"bcccad5cac74ebb3e53b98b94084bce1"},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling 200 12ms","method":"POST","requestID":"cc8b98f0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.152612326Z"}]},"request_id":"ee95ba98-fe42-40e8-8065-37efc83559f0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.845343} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Building 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":"bcccad5cac74ebb3e53b98b94084bce1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"f31eb033-1e99-4e83-95cc-bfc9ef13c1d9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"c5cf3347-3d27-40a0-bd85-b35314dd9889"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"dc111d50-d67c-440f-b84c-d5a3652e44c3"}]},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b? 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":"bcccad5cac74ebb3e53b98b94084bce1"} device-1 | {"level":"info","message":"GET /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b? 200 15ms","method":"GET","requestID":"bcccad5cac74ebb3e53b98b94084bce1","responseTime":15,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b336829776818fd9600d6f8f5b225b0c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.78675,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"cc8f1b60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681001,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383224,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNH0.opE8KaH4y88mmC2Wqgzy336Tq3r7NnzooiJ4Rqvn1Ec"} 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":"b336829776818fd9600d6f8f5b225b0c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:22.247774828Z"}]},"request_id":"9821207f-628f-4ef7-b4ad-0cc39c6b34d0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8673375} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b336829776818fd9600d6f8f5b225b0c"},"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":"14/Jun/2024:16:40:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 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":"b336829776818fd9600d6f8f5b225b0c"} device-1 | {"level":"info","message":"GET /devices/bd24d89e-ae63-44cb-b0ae-458a00061cea? 200 13ms","method":"GET","requestID":"b336829776818fd9600d6f8f5b225b0c","responseTime":13,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ad04feb4-54a5-4062-b0d9-3fe6131566cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8815396} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4079d3c-3a3c-40ff-bc65-15b04ae1241e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.8816285} 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":"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":"cc8f1b60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} 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/72843b20-8041-4d67-8d1a-ad5f6864f957'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957'"} 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":"cc8f1b60-2a6c-11ef-91df-9f2f583abbec","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/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28b80bde-7c97-4f16-ab35-2dde7c87d3ee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.9432466} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.955302,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","rebac_allow":false,"scope_allow":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":"cc9b7770-2a6c-11ef-91df-9f2f583abbec"},"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/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling 200 16ms","method":"POST","requestID":"cc9b7770-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"541fb386-0cc1-49de-9dae-e1b4d9283ac6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383224.9609728} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.781758,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"cc9e84b0-2a6c-11ef-91df-9f2f583abbec"},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling 200 11ms","method":"POST","requestID":"cc9e84b0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7e1cd2e4bd2bf17a388a8a24c1d7da99","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 13ms","method":"POST","requestID":"7e1cd2e4bd2bf17a388a8a24c1d7da99","responseTime":13,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.017","http_referrer":"","http_user_agent":"node-fetch","requestID":"7e1cd2e4bd2bf17a388a8a24c1d7da99"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","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/72843b20-8041-4d67-8d1a-ad5f6864f957' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","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":"5ac8dce9b676ca5ef9ade8416a5d9b73","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/bd24d89e-ae63-44cb-b0ae-458a00061cea"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72843b20-8041-4d67-8d1a-ad5f6864f957","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ab828204-96b3-433b-801b-10f19bd2ad40","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.0616548} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.541562,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"ccadee00-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"GET /peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957 200 12ms","method":"GET","requestID":"ccadee00-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"291e40be084da7088154f807744775ed","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"5ac8dce9b676ca5ef9ade8416a5d9b73","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.048","http_referrer":"","http_user_agent":"node-fetch","requestID":"5ac8dce9b676ca5ef9ade8416a5d9b73"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cb804f5-6993-46c0-b9a4-2c6cb4d13f7f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.0994072} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.133128,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ccb3ba60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.61397,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383225,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8"} 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":"291e40be084da7088154f807744775ed"},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling 200 11ms","method":"POST","requestID":"ccb3ba60-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d74c0c8f-35c3-4f4f-b888-78069f442440","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.1148355} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.071881,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"291e40be084da7088154f807744775ed"} experiment-1 | {"level":"info","message":"GET /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da 200 20ms","method":"GET","requestID":"291e40be084da7088154f807744775ed","responseTime":20,"status":200,"url":"/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","rebac_allow":false,"scope_allow":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":"ccb62b60-2a6c-11ef-91df-9f2f583abbec"},"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/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling 200 10ms","method":"POST","requestID":"ccb62b60-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e2e7e744621052dc7f621ef1409fdca7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.019664,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383225,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8"} 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":"e2e7e744621052dc7f621ef1409fdca7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.90239,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383225,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8"} 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":"ccba2300-2a6c-11ef-91df-9f2f583abbec"},"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/72843b20-8041-4d67-8d1a-ad5f6864f957' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"60f8dd27d776cead49a8543f4f743f82","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":"18a19b1317a54d49bbd1a794d4a9baf7","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/bd24d89e-ae63-44cb-b0ae-458a00061cea"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"}}},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"72843b20-8041-4d67-8d1a-ad5f6864f957","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72843b20-8041-4d67-8d1a-ad5f6864f957': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72843b20-8041-4d67-8d1a-ad5f6864f957","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"94824aed-f32d-4568-93cd-c7e08b32662d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.1678534} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"74571e55-7dd6-47d2-9e7c-54aa5b44a6cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.1680782} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccba2300-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957 204 51ms","method":"DELETE","requestID":"ccba2300-2a6c-11ef-91df-9f2f583abbec","responseTime":51,"status":204,"url":"/peerconnections/72843b20-8041-4d67-8d1a-ad5f6864f957"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbd24d89e-ae63-44cb-b0ae-458a00061cea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5f7dd770-44ff-424e-8c19-6054dc544b7d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.2155392} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.802274,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea","object_type":"device","rebac_allow":false,"scope_allow":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":"ccc4aa50-2a6c-11ef-91df-9f2f583abbec"},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling 200 16ms","method":"POST","requestID":"ccc4aa50-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/bd24d89e-ae63-44cb-b0ae-458a00061cea/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fce91dc60-3617-4b80-b83f-9141d2bbd15b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2775c90d-2355-4759-b5b8-9b46a6d3c521","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.2308662} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fddaed3fa-cdb5-4d43-81fb-234d53bd96da': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fddaed3fa-cdb5-4d43-81fb-234d53bd96da","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"79cdfc25-202c-46f7-af41-3818c551e3bd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.231303} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66219585-7c01-4209-bc30-090600687356","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.2316926} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.912429,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b","object_type":"device","rebac_allow":false,"scope_allow":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":"ccc79080-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2e7e744621052dc7f621ef1409fdca7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":34}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling 200 15ms","method":"POST","requestID":"ccc79080-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} gateway-1 | {"time_local":"14/Jun/2024:16:40:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2e7e744621052dc7f621ef1409fdca7"} experiment-1 | {"level":"info","message":"DELETE /experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da 204 182ms","method":"DELETE","requestID":"e2e7e744621052dc7f621ef1409fdca7","responseTime":182,"status":204,"url":"/experiments/ddaed3fa-cdb5-4d43-81fb-234d53bd96da"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"60f8dd27d776cead49a8543f4f743f82"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"60f8dd27d776cead49a8543f4f743f82","responseTime":152,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"489225d921e6073e96c5171f1176ab09","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"18a19b1317a54d49bbd1a794d4a9baf7","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"18a19b1317a54d49bbd1a794d4a9baf7"} gateway-1 | {"time_local":"14/Jun/2024:16:40:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"0.957","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c49767cdce9449bb1ca3631059bd0b6f"} gateway-1 | {"time_local":"14/Jun/2024:16:40:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2645","request_time":"0.958","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a130ee37e36bb7a08e08b6473dd3b4a6"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.007064,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383225,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8"} 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":"489225d921e6073e96c5171f1176ab09"},"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/bd24d89e-ae63-44cb-b0ae-458a00061cea' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ce91dc60-3617-4b80-b83f-9141d2bbd15b' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2782d450-d0e5-4e3f-ae2b-4a22394221de","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.3393104} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"489225d921e6073e96c5171f1176ab09"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f2ffee5-aa44-470a-91d1-fb180c0b41e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.344353} 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":"489225d921e6073e96c5171f1176ab09"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"8d5afc84-d1a2-4219-a821-7f409dd7e1b6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.3556476} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e29a786f-d958-412a-bf08-8ddc86aed172","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.3557765} 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":"489225d921e6073e96c5171f1176ab09"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.355636991Z"}]},"request_id":"46260611-023f-485e-bcc7-6686dfddc507","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.3598075} 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":"489225d921e6073e96c5171f1176ab09"},"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":"14/Jun/2024:16:40: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.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"489225d921e6073e96c5171f1176ab09"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"489225d921e6073e96c5171f1176ab09","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e603073c633f10d4641cf17e0b098e39","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.79125,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383225,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNX0.taYqJQJKpl8xx3e0nQWc5TAeFtCZ-xtwq3pwBMjjyB8"} 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":"e603073c633f10d4641cf17e0b098e39"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d8b39761-98ab-4ac5-b140-41b9d1d6a44a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.3860395} 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":"e603073c633f10d4641cf17e0b098e39"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b78e180-80b9-424f-a755-8f79e3c84b5e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.390512} 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":"e603073c633f10d4641cf17e0b098e39"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"fcdaa4ae-a3b1-4717-a29b-2197107388a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.408204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a14ef31-515a-4004-a1e1-3923953240a8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.4085217} 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":"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":"e603073c633f10d4641cf17e0b098e39"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"e8b42e63-1f9c-44e9-8418-783f78ccbcf9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383225.41358} 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":"e603073c633f10d4641cf17e0b098e39"},"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":"14/Jun/2024:16:40:25 +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":"e603073c633f10d4641cf17e0b098e39"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"e603073c633f10d4641cf17e0b098e39","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNn0.acIDPVdkdqaTipn1drbLxnnm_XHgBLJ2-rOaY4toxHo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c834bd31ac18fc1f07ab99c97fd63775","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:26Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.894573,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383226,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNn0.acIDPVdkdqaTipn1drbLxnnm_XHgBLJ2-rOaY4toxHo"} 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":"c834bd31ac18fc1f07ab99c97fd63775"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"bebb0885-5ace-4c74-9d20-dcc47e605ee4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383226.0407455} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c834bd31ac18fc1f07ab99c97fd63775"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ab28fea-5bb5-4ba1-85fb-12b6d83019e8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383226.048727} 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":"c834bd31ac18fc1f07ab99c97fd63775"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"d93b36c7-d177-440d-84bb-4590ee060b47","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383226.0683157} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c834bd31ac18fc1f07ab99c97fd63775"},"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":"14/Jun/2024:16:40:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314 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":"c834bd31ac18fc1f07ab99c97fd63775"} device-1 | {"level":"info","message":"PATCH /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314 200 64ms","method":"PATCH","requestID":"c834bd31ac18fc1f07ab99c97fd63775","responseTime":64,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNn0.acIDPVdkdqaTipn1drbLxnnm_XHgBLJ2-rOaY4toxHo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8c81f23c7dfb0198e47b60a466e2120d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:26Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.245559,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383226,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyNn0.acIDPVdkdqaTipn1drbLxnnm_XHgBLJ2-rOaY4toxHo"} 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":"8c81f23c7dfb0198e47b60a466e2120d"},"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/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/websocket 200 23ms","method":"POST","requestID":"8c81f23c7dfb0198e47b60a466e2120d","responseTime":23,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:40:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8c81f23c7dfb0198e47b60a466e2120d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314' 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":"2a2230032f414ab51135c8484067e8cd","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/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":"2a2230032f414ab51135c8484067e8cd"} device-1 | {"level":"info","message":"OPTIONS /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/websocket 200 1ms","method":"OPTIONS","requestID":"2a2230032f414ab51135c8484067e8cd","responseTime":1,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6edbac0e215c24aae0bb4da9552ba685","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.370309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"6edbac0e215c24aae0bb4da9552ba685"},"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":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/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":"6edbac0e215c24aae0bb4da9552ba685"} device-1 | {"level":"info","message":"POST /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/websocket 200 26ms","method":"POST","requestID":"6edbac0e215c24aae0bb4da9552ba685","responseTime":26,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e22dea4533751ca7836949efe07a2176","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.474498,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"e22dea4533751ca7836949efe07a2176"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.355636991Z"}]},"request_id":"a2379b4f-5da0-4a5a-b8ce-53a353a19605","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.5191228} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e22dea4533751ca7836949efe07a2176"},"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":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/689b3d1c-9679-4b2f-870d-138bbabed59c? 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":"e22dea4533751ca7836949efe07a2176"} device-1 | {"level":"info","message":"GET /devices/689b3d1c-9679-4b2f-870d-138bbabed59c? 200 21ms","method":"GET","requestID":"e22dea4533751ca7836949efe07a2176","responseTime":21,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d5c5a2dcc731e0c87265cf5aa62192b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.206246,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"d5c5a2dcc731e0c87265cf5aa62192b3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"6205c5b1-d16d-4849-aef4-f3a6de7fa565","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.5521924} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5c5a2dcc731e0c87265cf5aa62192b3"},"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":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d5c5a2dcc731e0c87265cf5aa62192b3"} device-1 | {"level":"info","message":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? 200 23ms","method":"GET","requestID":"d5c5a2dcc731e0c87265cf5aa62192b3","responseTime":23,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"59ab93ecec42d165ce453771a9f397b7","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:57580","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.385449,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"59ab93ecec42d165ce453771a9f397b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"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:57580","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92828,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"ce36ff00-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281996,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"ce374d20-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.355636991Z"}]},"request_id":"8fc987cd-65aa-4693-9182-cfecb71d9d55","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.6468585} 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":"ce36ff00-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"afc5e729-ec80-4678-88a3-f7e470fbb158","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.6496086} 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":"ce374d20-2a6c-11ef-91df-9f2f583abbec"},"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/689b3d1c-9679-4b2f-870d-138bbabed59c? 200 27ms","method":"GET","requestID":"ce36ff00-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? 200 27ms","method":"GET","requestID":"ce374d20-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"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/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.376353,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"ce449390-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.276048,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"ce4508c0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.355636991Z"}]},"request_id":"9d8c72ea-94b3-43df-9262-5de51ae766b6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.7447722} 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":"ce449390-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"cf9592eb-98af-46f5-90c9-e4f917f0dfd3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.7468426} 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":"ce4508c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57588","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3026cad9-8cd7-4d01-aace-38fdc4ba7c1d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.753962} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/689b3d1c-9679-4b2f-870d-138bbabed59c? 200 34ms","method":"GET","requestID":"ce449390-2a6c-11ef-91df-9f2f583abbec","responseTime":34,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? 200 35ms","method":"GET","requestID":"ce4508c0-2a6c-11ef-91df-9f2f583abbec","responseTime":35,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314?"} authorization-1 | {"client_addr":"127.0.0.1:57588","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.782484,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce457df0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":28}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17cf8e87-e3c8-4732-ab2c-0da07c085987#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17cf8e87-e3c8-4732-ab2c-0da07c085987","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"680f07e7-2c2c-42d2-9b19-b3b3ec958ba1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.7611725} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"148f8fc8-a2bd-4a05-9af1-a59b8f726413","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.761873} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"59ab93ecec42d165ce453771a9f397b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":28}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling 200 44ms","method":"POST","requestID":"ce457df0-2a6c-11ef-91df-9f2f583abbec","responseTime":44,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fa7cf7f3-47b5-4757-a083-bd2afe52fef6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.7760587} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.561951,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","rebac_allow":false,"scope_allow":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":"ce4b7160-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling 200 20ms","method":"POST","requestID":"ce4b7160-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 213ms","method":"POST","requestID":"59ab93ecec42d165ce453771a9f397b7","responseTime":213,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.221","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59ab93ecec42d165ce453771a9f397b7"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6d0ff03c-3c86-4233-9cfc-4c3e50a5f871","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.7877336} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.417662,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","rebac_allow":false,"scope_allow":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":"ce4d6d30-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4fc691d08e5efc861e923eb04f16dbef","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f9eec81e-e465-4754-8f11-6ab7a31b0b78","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.800473} device-1 | {"level":"info","message":"POST /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling 200 23ms","method":"POST","requestID":"ce4d6d30-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.667892,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","rebac_allow":false,"scope_allow":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":"ce4f6900-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57584","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238884,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"4fc691d08e5efc861e923eb04f16dbef"},"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/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling 200 18ms","method":"POST","requestID":"ce4f6900-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to create peerconnections for experiment"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.355636991Z"}]},"request_id":"1a68eda5-14d1-41ef-a12b-61b15e11a6e1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.8118508} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"0af856b5-49cc-40ed-beca-4f438422cdf9"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"238a84f7-bcf4-44db-b0d0-d08cdc41aa93"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9a2565e1-488d-454a-af13-144433662c43"}]},"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/689b3d1c-9679-4b2f-870d-138bbabed59c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4fc691d08e5efc861e923eb04f16dbef"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/689b3d1c-9679-4b2f-870d-138bbabed59c? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4fc691d08e5efc861e923eb04f16dbef"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.240604,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} device-1 | {"level":"info","message":"GET /devices/689b3d1c-9679-4b2f-870d-138bbabed59c? 200 25ms","method":"GET","requestID":"4fc691d08e5efc861e923eb04f16dbef","responseTime":25,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"ce531280-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"84f80d1eb55ba45f910580cdf632d038","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"bec3d8a3-14c5-4a6f-af68-7c6cdb001198","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.838476} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08eeb1b0-4f59-4f1d-bbae-691f9daee767","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.8395522} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304914,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383227,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIyN30.zUAmIl_fP_S7a_YWIE991vxR2hNzyqyFVa8jsJx6Co0"} 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":"84f80d1eb55ba45f910580cdf632d038"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce531280-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:25.408191404Z"}]},"request_id":"4bd5cb38-7006-4b06-8824-393825941288","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.8491225} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84f80d1eb55ba45f910580cdf632d038"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8'"} 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":"ce531280-2a6c-11ef-91df-9f2f583abbec","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":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? 200 31ms","method":"GET","requestID":"84f80d1eb55ba45f910580cdf632d038","responseTime":31,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84f80d1eb55ba45f910580cdf632d038"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53abc1f9-6767-4433-bf2d-ae0826da1037","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.9031045} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.371145,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","rebac_allow":false,"scope_allow":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":"ce5f95a0-2a6c-11ef-91df-9f2f583abbec"},"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/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling 200 10ms","method":"POST","requestID":"ce5f95a0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"192abe10-2321-4b0c-aba8-d82189a58318","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383227.916242} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.676241,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ce619170-2a6c-11ef-91df-9f2f583abbec"},"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/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling 200 9ms","method":"POST","requestID":"ce619170-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","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/8e577095-2295-497a-bd4b-e2da888973a8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6a9b2625bcf64bd1fce91abfe83cc947","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/689b3d1c-9679-4b2f-870d-138bbabed59c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"6a9b2625bcf64bd1fce91abfe83cc947","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a9b2625bcf64bd1fce91abfe83cc947"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","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/8e577095-2295-497a-bd4b-e2da888973a8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"6f0e0bf2c926802fdeb2479debc76114","responseTime":10,"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 | {"level":"info","message":"Handling GET request on endpoint /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ca9605695b7c3d19869d96c6d4c18201","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/689b3d1c-9679-4b2f-870d-138bbabed59c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.410906,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} 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":"6f0e0bf2c926802fdeb2479debc76114"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 HTTP/1.1","status": "200","body_bytes_sent":"882","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6f0e0bf2c926802fdeb2479debc76114"} experiment-1 | {"level":"info","message":"GET /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 200 28ms","method":"GET","requestID":"6f0e0bf2c926802fdeb2479debc76114","responseTime":28,"status":200,"url":"/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e577095-2295-497a-bd4b-e2da888973a8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4420fe4e-d06f-42a7-a035-f268160b5823","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.116618} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.367908,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8","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":"cfb05890-2a6c-11ef-91df-9f2f583abbec"},"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/8e577095-2295-497a-bd4b-e2da888973a8 200 19ms","method":"GET","requestID":"cfb05890-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 60ms","method":"POST","requestID":"ca9605695b7c3d19869d96c6d4c18201","responseTime":60,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.068","http_referrer":"","http_user_agent":"node-fetch","requestID":"ca9605695b7c3d19869d96c6d4c18201"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a3296528-8c80-4820-a43b-5918b52f4e71","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.1596463} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.089884,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","rebac_allow":false,"scope_allow":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":"cfb78480-2a6c-11ef-91df-9f2f583abbec"},"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/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling 200 15ms","method":"POST","requestID":"cfb78480-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f02711a7-687e-4335-9047-5bfaf12f505d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.1785889} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.830987,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","rebac_allow":false,"scope_allow":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":"cfba6ab0-2a6c-11ef-91df-9f2f583abbec"},"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/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling 200 16ms","method":"POST","requestID":"cfba6ab0-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2e15f62e9117d4be82d393ff6a2ad3b3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.355344,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} 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":"2e15f62e9117d4be82d393ff6a2ad3b3"},"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/17cf8e87-e3c8-4732-ab2c-0da07c085987"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e15f62e9117d4be82d393ff6a2ad3b3"} experiment-1 | {"level":"info","message":"GET /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 200 21ms","method":"GET","requestID":"2e15f62e9117d4be82d393ff6a2ad3b3","responseTime":21,"status":200,"url":"/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"931f58baec7c292b9d7aba6c70f50c59","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.385083,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"931f58baec7c292b9d7aba6c70f50c59"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.028093,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} 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":"cfca9750-2a6c-11ef-91df-9f2f583abbec"},"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/8e577095-2295-497a-bd4b-e2da888973a8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","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)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e577095-2295-497a-bd4b-e2da888973a8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e577095-2295-497a-bd4b-e2da888973a8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"9b40d49b-6480-4c4d-8368-0f02ba11b06d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.3026361} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a0d01015a6a2b03567150ce7bbf9b3cd","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c9c067ff-f49a-4135-b999-bd726261a2cf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.3031256} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"405f75ea303a5ec184a1e87494de8cb8","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/689b3d1c-9679-4b2f-870d-138bbabed59c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"}}},"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":"cfca9750-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"8e577095-2295-497a-bd4b-e2da888973a8","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/8e577095-2295-497a-bd4b-e2da888973a8 204 48ms","method":"DELETE","requestID":"cfca9750-2a6c-11ef-91df-9f2f583abbec","responseTime":48,"status":204,"url":"/peerconnections/8e577095-2295-497a-bd4b-e2da888973a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F689b3d1c-9679-4b2f-870d-138bbabed59c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a82b97ee-4c48-455e-884b-56b9d6604aca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.360744} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.519357,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/689b3d1c-9679-4b2f-870d-138bbabed59c","object_type":"device","rebac_allow":false,"scope_allow":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":"cfd60900-2a6c-11ef-91df-9f2f583abbec"},"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/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling 200 16ms","method":"POST","requestID":"cfd60900-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/689b3d1c-9679-4b2f-870d-138bbabed59c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17cf8e87-e3c8-4732-ab2c-0da07c085987': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F17cf8e87-e3c8-4732-ab2c-0da07c085987","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"3c839b6e-75c3-4e2d-a934-dec05b62a998","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.372417} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d05583e8-e4d2-42ee-9467-3e223b534e83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.373688} 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":"931f58baec7c292b9d7aba6c70f50c59"},"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:57580","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3c7cdd5-03f7-47b3-af7d-46c2852b5314","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"550b827c-d759-4eab-bc90-ecaffd37285e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.3854346} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.758041,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314","object_type":"device","rebac_allow":false,"scope_allow":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":"cfd96460-2a6c-11ef-91df-9f2f583abbec"},"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/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling 200 32ms","method":"POST","requestID":"cfd96460-2a6c-11ef-91df-9f2f583abbec","responseTime":32,"status":200,"url":"/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"931f58baec7c292b9d7aba6c70f50c59"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2598","request_time":"4.325","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"bdc8380566201a65bd8645ff5851562a"} experiment-1 | {"level":"info","message":"DELETE /experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987 204 187ms","method":"DELETE","requestID":"931f58baec7c292b9d7aba6c70f50c59","responseTime":187,"status":204,"url":"/experiments/17cf8e87-e3c8-4732-ab2c-0da07c085987"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"a0d01015a6a2b03567150ce7bbf9b3cd","responseTime":139,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"405f75ea303a5ec184a1e87494de8cb8","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"a0d01015a6a2b03567150ce7bbf9b3cd"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"405f75ea303a5ec184a1e87494de8cb8"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.976","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c6290fc8a17e3b99e79d8843c44abc48"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"954637d40cd30733c1a308a8d380c4f3","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f3c7cdd5-03f7-47b3-af7d-46c2852b5314' closed"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.818209,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} 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":"954637d40cd30733c1a308a8d380c4f3"},"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/689b3d1c-9679-4b2f-870d-138bbabed59c' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"21406e7e-54eb-4662-bdd8-fc43debcdf84","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.4777002} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"954637d40cd30733c1a308a8d380c4f3"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1fd73a3-4f4d-4991-bffe-0f1295030292","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.483296} 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":"954637d40cd30733c1a308a8d380c4f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"8432812d-c51f-475f-89cc-c96f33ba35b2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.491147} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"caa90fce-a491-4655-b1ee-72518c462d66","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.4913762} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"954637d40cd30733c1a308a8d380c4f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"60f91186-0a29-409f-b3cf-be4106c450e9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.4959075} 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":"954637d40cd30733c1a308a8d380c4f3"},"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":"14/Jun/2024:16:40:30 +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":"954637d40cd30733c1a308a8d380c4f3"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"954637d40cd30733c1a308a8d380c4f3","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"788ae4020b6f565010fc5c935f1bdd57","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.693354,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383230,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMH0.fdLMlFTPtlMMn1lFqiHJO-GAmh81OrCdajukR0q7tds"} 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":"788ae4020b6f565010fc5c935f1bdd57"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a878f3a8-82c6-4eab-918d-4bf444808561","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.5278046} 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":"788ae4020b6f565010fc5c935f1bdd57"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6fc8d039-45c2-4d2e-a3de-a62477e58936","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.5336556} 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":"788ae4020b6f565010fc5c935f1bdd57"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"5d0cd394-c7a7-4028-8e86-6f8fb2a056d7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.5468721} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4378964-4a5f-4f2a-bfbe-3168d3e7e42f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.547022} 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":"788ae4020b6f565010fc5c935f1bdd57"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.546860907Z"}]},"request_id":"4b5dbb57-2d40-4aba-894d-013fcfcfc837","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383230.553186} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"788ae4020b6f565010fc5c935f1bdd57"},"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 51ms","method":"POST","requestID":"788ae4020b6f565010fc5c935f1bdd57","responseTime":51,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"788ae4020b6f565010fc5c935f1bdd57"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMX0.ukEwF_cQA6LQgLv_eGAdvbCUmZHVtjfaAHCo2J9Ejk4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"801e07d8edfc08b929764f7d2dc28824","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.828672,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383231,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMX0.ukEwF_cQA6LQgLv_eGAdvbCUmZHVtjfaAHCo2J9Ejk4"} 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":"801e07d8edfc08b929764f7d2dc28824"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"bbe606c1-e37a-4aab-8ab0-a221f266f0d4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383231.0610802} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"801e07d8edfc08b929764f7d2dc28824"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e033dfee-3453-4682-8770-3df5c62896b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383231.0670705} 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":"801e07d8edfc08b929764f7d2dc28824"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"1ffeb3a0-9ea5-401f-bf1f-371e1780b90d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383231.0806353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"801e07d8edfc08b929764f7d2dc28824"},"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":"14/Jun/2024:16:40:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"801e07d8edfc08b929764f7d2dc28824"} device-1 | {"level":"info","message":"PATCH /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f 200 38ms","method":"PATCH","requestID":"801e07d8edfc08b929764f7d2dc28824","responseTime":38,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMX0.ukEwF_cQA6LQgLv_eGAdvbCUmZHVtjfaAHCo2J9Ejk4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a3c0050dc8d6b004de9c5d87228c1518","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210719,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383231,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMX0.ukEwF_cQA6LQgLv_eGAdvbCUmZHVtjfaAHCo2J9Ejk4"} 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":"a3c0050dc8d6b004de9c5d87228c1518"},"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":"14/Jun/2024:16:40:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/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":"a3c0050dc8d6b004de9c5d87228c1518"} device-1 | {"level":"info","message":"POST /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/websocket 200 23ms","method":"POST","requestID":"a3c0050dc8d6b004de9c5d87228c1518","responseTime":23,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f' 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":"838514bfbd2f47d64a4e5ebb1fb21366","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/be818c46-5983-4b54-9fe8-dc268330d4d0/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":"838514bfbd2f47d64a4e5ebb1fb21366"} device-1 | {"level":"info","message":"OPTIONS /devices/be818c46-5983-4b54-9fe8-dc268330d4d0/websocket 200 2ms","method":"OPTIONS","requestID":"838514bfbd2f47d64a4e5ebb1fb21366","responseTime":2,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"1492dc39b9f598681ad79fcc27777304","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.279379,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"1492dc39b9f598681ad79fcc27777304"},"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":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/be818c46-5983-4b54-9fe8-dc268330d4d0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1492dc39b9f598681ad79fcc27777304"} device-1 | {"level":"info","message":"POST /devices/be818c46-5983-4b54-9fe8-dc268330d4d0/websocket 200 23ms","method":"POST","requestID":"1492dc39b9f598681ad79fcc27777304","responseTime":23,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"63d55ada89b1af1c984023b0f39c92b4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.43258,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"63d55ada89b1af1c984023b0f39c92b4"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"64715aa8-3851-4fb8-b7f4-236c0efaa7cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.6541252} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63d55ada89b1af1c984023b0f39c92b4"},"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":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 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":"63d55ada89b1af1c984023b0f39c92b4"} device-1 | {"level":"info","message":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 200 21ms","method":"GET","requestID":"63d55ada89b1af1c984023b0f39c92b4","responseTime":21,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"06a9be36293ebebdf2369d3c19cebdd4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.17363,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"06a9be36293ebebdf2369d3c19cebdd4"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.546860907Z"}]},"request_id":"d3a26490-99df-4fb1-bd32-1af8ac893f52","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.682583} 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":"06a9be36293ebebdf2369d3c19cebdd4"},"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":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be818c46-5983-4b54-9fe8-dc268330d4d0? 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":"06a9be36293ebebdf2369d3c19cebdd4"} device-1 | {"level":"info","message":"GET /devices/be818c46-5983-4b54-9fe8-dc268330d4d0? 200 20ms","method":"GET","requestID":"06a9be36293ebebdf2369d3c19cebdd4","responseTime":20,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"23d761a78fbb3a880b1d2a44e9b9df8c","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:57580","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.301753,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"23d761a78fbb3a880b1d2a44e9b9df8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"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:57580","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.636085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"d1437bb0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.828968,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"d143f0e0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"609b0df1-61ae-48dc-8ae5-8e4d48acdb9f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.7605977} 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":"d1437bb0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.546860907Z"}]},"request_id":"5b62ceef-5940-43fb-b37a-5e033a84340d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.767415} device-1 | {"level":"info","message":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 200 21ms","method":"GET","requestID":"d1437bb0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d143f0e0-2a6c-11ef-91df-9f2f583abbec"},"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/be818c46-5983-4b54-9fe8-dc268330d4d0? 200 21ms","method":"GET","requestID":"d143f0e0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"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/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.657701,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"d14d18a0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.625207,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"d14d66c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40389457-f8a6-4abb-849c-a157306da3c0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8228612} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.947298,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","rebac_allow":false,"scope_allow":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":"d14ddbf0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.546860907Z"}]},"request_id":"9b538e31-b6c4-43ae-997c-e84067f2781a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8262446} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d14d66c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"POST /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling 200 15ms","method":"POST","requestID":"d14ddbf0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"b75d27f1-2a65-4eed-8bd0-9ec88535a647","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.829453} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d14d18a0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/be818c46-5983-4b54-9fe8-dc268330d4d0? 200 26ms","method":"GET","requestID":"d14d66c0-2a6c-11ef-91df-9f2f583abbec","responseTime":26,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 200 29ms","method":"GET","requestID":"d14d18a0-2a6c-11ef-91df-9f2f583abbec","responseTime":29,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8b9585a4-07ed-4e2f-b457-9b07bdfc4f45","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8392425} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.028891,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","rebac_allow":false,"scope_allow":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":"d150c220-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faa598d92-dab7-4563-b6f7-263245ad8b84#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faa598d92-dab7-4563-b6f7-263245ad8b84","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"93e8e479-c3f3-490c-8701-6d4d9273258c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8417714} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe1279b6-fb98-4173-ade6-e9f3a16d53e9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8421972} 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":"23d761a78fbb3a880b1d2a44e9b9df8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling 200 13ms","method":"POST","requestID":"d150c220-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34c4e100-80f5-4f45-b9a6-cb3e45e75f71","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.850044} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.740609,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","rebac_allow":false,"scope_allow":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":"d15221b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.162","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"23d761a78fbb3a880b1d2a44e9b9df8c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 154ms","method":"POST","requestID":"23d761a78fbb3a880b1d2a44e9b9df8c","responseTime":154,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling 200 14ms","method":"POST","requestID":"d15221b0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"354a58586c49d2950a96c05a6f460abe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c791ec64-c00c-4ed7-87c8-fa57fc1abd8e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8650198} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.943468,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","rebac_allow":false,"scope_allow":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":"d154b9c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"354a58586c49d2950a96c05a6f460abe"},"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/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling 200 11ms","method":"POST","requestID":"d154b9c0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.491132725Z"}]},"request_id":"4e5d4907-5532-43fa-ac83-62b74b0df5bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8715494} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"bb34aef7-27e0-4886-b093-45fdbff842d6"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"53d97705-97c7-4dc7-9f9c-3c66ba18028c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"4eb822c6-ca3f-4adf-b65b-4680526b2201"}]},"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/1a901768-af74-4f2d-8d7e-78f4cf67d46f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0"}],"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":"354a58586c49d2950a96c05a6f460abe"},"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":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 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":"354a58586c49d2950a96c05a6f460abe"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} device-1 | {"level":"info","message":"GET /devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f? 200 15ms","method":"GET","requestID":"354a58586c49d2950a96c05a6f460abe","responseTime":15,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.624653,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"d15703b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3467a73be8cec5790fa9a6dc3f3f68f6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735327,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383232,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzMn0._EsmuHXiXRElzSOUDUHqJvjyQsiqNtSipz4CmhsMacg"} 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":"3467a73be8cec5790fa9a6dc3f3f68f6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7ad3c258-e355-4013-9489-935973e3d064","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8935034} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c24b1955-8fe9-4469-837a-344dd17fc3e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.893759} 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":"d15703b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:30.546860907Z"}]},"request_id":"b069b98b-52ee-4a85-9edd-15c775f69e3f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.8971248} 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":"3467a73be8cec5790fa9a6dc3f3f68f6"},"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":"14/Jun/2024:16:40:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/be818c46-5983-4b54-9fe8-dc268330d4d0? 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":"3467a73be8cec5790fa9a6dc3f3f68f6"} device-1 | {"level":"info","message":"GET /devices/be818c46-5983-4b54-9fe8-dc268330d4d0? 200 26ms","method":"GET","requestID":"3467a73be8cec5790fa9a6dc3f3f68f6","responseTime":26,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0?"} 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/4bbefbca-eb57-4106-941b-63339a522943'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943'"} 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":"d15703b0-2a6c-11ef-91df-9f2f583abbec","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/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6afb7fd1-3e5c-44bf-97a2-12b0f7bb45fd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.9478397} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.24576,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d16163f0-2a6c-11ef-91df-9f2f583abbec"},"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/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling 200 9ms","method":"POST","requestID":"d16163f0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e45f168-6e77-4b16-8ffb-00c2758889f3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383232.9591415} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.882213,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d16311a0-2a6c-11ef-91df-9f2f583abbec"},"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/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling 200 9ms","method":"POST","requestID":"d16311a0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","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/4bbefbca-eb57-4106-941b-63339a522943' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","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":"8307602b281459341540ba372d3d133c","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/1a901768-af74-4f2d-8d7e-78f4cf67d46f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 14ms","method":"POST","requestID":"8307602b281459341540ba372d3d133c","responseTime":14,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.020","http_referrer":"","http_user_agent":"node-fetch","requestID":"8307602b281459341540ba372d3d133c"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0'"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","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/4bbefbca-eb57-4106-941b-63339a522943' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","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":"38a58e4e15a6a935676f181239ef9b9a","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/1a901768-af74-4f2d-8d7e-78f4cf67d46f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4bbefbca-eb57-4106-941b-63339a522943","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d2e8807-8ef7-40c4-a130-c8858646bf46","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.0584729} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.652461,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943","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":"d2a359d0-2a6c-11ef-91df-9f2f583abbec"},"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/4bbefbca-eb57-4106-941b-63339a522943 200 9ms","method":"GET","requestID":"d2a359d0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"38a58e4e15a6a935676f181239ef9b9a","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"38a58e4e15a6a935676f181239ef9b9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97743cae-855e-4053-9cc5-b9b01fff2347","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.0878506} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.774581,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d2a7edb0-2a6c-11ef-91df-9f2f583abbec"},"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/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling 200 9ms","method":"POST","requestID":"d2a7edb0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad57a147-64c3-4b51-b695-8495c8256f18","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.100393} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.966502,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","rebac_allow":false,"scope_allow":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":"d2a9c270-2a6c-11ef-91df-9f2f583abbec"},"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/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling 200 11ms","method":"POST","requestID":"d2a9c270-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d88a52e5f0ece64f4d0f3d92f5468500","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.157779,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383235,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo"} 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":"d88a52e5f0ece64f4d0f3d92f5468500"},"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/aa598d92-dab7-4563-b6f7-263245ad8b84"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d88a52e5f0ece64f4d0f3d92f5468500"} experiment-1 | {"level":"info","message":"GET /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84 200 22ms","method":"GET","requestID":"d88a52e5f0ece64f4d0f3d92f5468500","responseTime":22,"status":200,"url":"/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"246a15c078fdb6c8e3e199dc225e1145","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.805702,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383235,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo"} 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":"246a15c078fdb6c8e3e199dc225e1145"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.291785,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383235,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo"} 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":"d2b84160-2a6c-11ef-91df-9f2f583abbec"},"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/4bbefbca-eb57-4106-941b-63339a522943' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4bbefbca-eb57-4106-941b-63339a522943': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4bbefbca-eb57-4106-941b-63339a522943","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"533f4de2-d691-4344-b3cf-7804b2d114e3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.21941} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b9c88c5-195b-425e-9e04-d472a3f51fef","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.2200842} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"bdc7c1876a4494d45dbb3aaa69101d1e","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":"d2b84160-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"680568705a78ce9173a3ba922b4bd4f4","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/1a901768-af74-4f2d-8d7e-78f4cf67d46f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4bbefbca-eb57-4106-941b-63339a522943","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/4bbefbca-eb57-4106-941b-63339a522943 204 57ms","method":"DELETE","requestID":"d2b84160-2a6c-11ef-91df-9f2f583abbec","responseTime":57,"status":204,"url":"/peerconnections/4bbefbca-eb57-4106-941b-63339a522943"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1a901768-af74-4f2d-8d7e-78f4cf67d46f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27f419b8-aea7-4f7a-adae-8a0976f400e7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.2818387} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.077638,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f","object_type":"device","rebac_allow":false,"scope_allow":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":"d2c4eb90-2a6c-11ef-91df-9f2f583abbec"},"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/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling 200 17ms","method":"POST","requestID":"d2c4eb90-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/1a901768-af74-4f2d-8d7e-78f4cf67d46f/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faa598d92-dab7-4563-b6f7-263245ad8b84': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faa598d92-dab7-4563-b6f7-263245ad8b84","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"e74b0f1a-c9ae-4132-ae41-b76a007fb048","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.2908409} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"51710ea4-e00a-41b2-93aa-48aca6d95849","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.2915564} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"246a15c078fdb6c8e3e199dc225e1145"},"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:57580","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe818c46-5983-4b54-9fe8-dc268330d4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2d247fa-6061-46bb-a8c9-4cd3ad1f0a83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.3029191} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.028081,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0","object_type":"device","rebac_allow":false,"scope_allow":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":"d2c846f0-2a6c-11ef-91df-9f2f583abbec"},"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/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling 200 15ms","method":"POST","requestID":"d2c846f0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/be818c46-5983-4b54-9fe8-dc268330d4d0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.298","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"246a15c078fdb6c8e3e199dc225e1145"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2991","request_time":"4.348","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"55dc0536341525e91b9313b72edcd68f"} experiment-1 | {"level":"info","message":"DELETE /experiments/aa598d92-dab7-4563-b6f7-263245ad8b84 204 294ms","method":"DELETE","requestID":"246a15c078fdb6c8e3e199dc225e1145","responseTime":294,"status":204,"url":"/experiments/aa598d92-dab7-4563-b6f7-263245ad8b84"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 241ms","method":"POST","requestID":"bdc7c1876a4494d45dbb3aaa69101d1e","responseTime":241,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.248","http_referrer":"","http_user_agent":"node-fetch","requestID":"bdc7c1876a4494d45dbb3aaa69101d1e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 239ms","method":"POST","requestID":"680568705a78ce9173a3ba922b4bd4f4","responseTime":239,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.250","http_referrer":"","http_user_agent":"node-fetch","requestID":"680568705a78ce9173a3ba922b4bd4f4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f56a914da1770e671a90dde02049f0e3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2501","request_time":"2.860","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"100ef6bb8be56cf6cee91f8fa81eccb0"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.898259,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383235,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo"} 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":"f56a914da1770e671a90dde02049f0e3"},"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/1a901768-af74-4f2d-8d7e-78f4cf67d46f' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0fb1e898-9f6d-41b0-96fe-abe842e18dc3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5010107} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f56a914da1770e671a90dde02049f0e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/be818c46-5983-4b54-9fe8-dc268330d4d0' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4551045-bd89-4886-9242-fa35c8c69a02","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5077975} 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":"f56a914da1770e671a90dde02049f0e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"4927e8ca-e786-4d6f-bfa8-b16ac6ed06a7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5198092} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ad10b56-9c3c-4f79-912b-28a65889fb2b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.520079} 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":"f56a914da1770e671a90dde02049f0e3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"3c70eeb7-6d66-4fa1-87da-f94f83eea32e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5255482} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f56a914da1770e671a90dde02049f0e3"},"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":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f56a914da1770e671a90dde02049f0e3"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"f56a914da1770e671a90dde02049f0e3","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d2c977856d597d05075561642e81f6f6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.668808,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383235,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNX0.mkgwYwS1SduB0wdOUJ4ZOMGMXSrUg8bvGHNXXW0qfMo"} 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":"d2c977856d597d05075561642e81f6f6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"98d61cf9-ada0-4a0a-9f36-2341390c4527","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5514274} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d2c977856d597d05075561642e81f6f6"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40f0240d-d3b1-407e-8b2a-e4ef4b9097d9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5568366} 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":"d2c977856d597d05075561642e81f6f6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a68c87a9-1533-473d-b064-5b29d69e60bc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5688496} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"baf4868b-57d8-40a5-82d7-f837925b77f4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.568969} 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":"d2c977856d597d05075561642e81f6f6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"b627a7c0-d2d4-4680-b038-b5b09be08fb9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383235.5733848} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d2c977856d597d05075561642e81f6f6"},"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":"14/Jun/2024:16:40:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d2c977856d597d05075561642e81f6f6"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"d2c977856d597d05075561642e81f6f6","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ff0bc02c1da9834b9576062577cdba38","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3bc3c3dc7b994f1ae62bfde8f1791d4b","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:57580","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664974,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"ff0bc02c1da9834b9576062577cdba38"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676991,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"3bc3c3dc7b994f1ae62bfde8f1791d4b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"2541003e-727f-4443-b847-3f6dd6b2feca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.0854626} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff0bc02c1da9834b9576062577cdba38"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"e70ef56d-e016-45b0-8fa2-06ea4347fabc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.0863748} 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":"3bc3c3dc7b994f1ae62bfde8f1791d4b"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"262ab033-57e0-400c-9535-4153cc1a8c9c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.091588} 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":"ff0bc02c1da9834b9576062577cdba38"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1438695f-dbe4-486f-8125-3e8a0783f618","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.0939183} 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":"3bc3c3dc7b994f1ae62bfde8f1791d4b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"a27bca54-7a90-453c-9a04-de9e50580d7b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.0980194} 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":"3bc3c3dc7b994f1ae62bfde8f1791d4b"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8 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":"3bc3c3dc7b994f1ae62bfde8f1791d4b"} device-1 | {"level":"info","message":"PATCH /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8 200 34ms","method":"PATCH","requestID":"3bc3c3dc7b994f1ae62bfde8f1791d4b","responseTime":34,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6c01600c583c0ecb30ed9ce559d48e77","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"19f8c1e6-68d4-475c-b371-2077ebe48e7c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.1080105} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff0bc02c1da9834b9576062577cdba38"},"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:57580","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681213,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} gateway-1 | {"time_local":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ff0bc02c1da9834b9576062577cdba38"} 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":"6c01600c583c0ecb30ed9ce559d48e77"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"PATCH /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec 200 47ms","method":"PATCH","requestID":"ff0bc02c1da9834b9576062577cdba38","responseTime":47,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"218922e38ca7a274702af65b44b35d51","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.975572,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"218922e38ca7a274702af65b44b35d51"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6c01600c583c0ecb30ed9ce559d48e77"} device-1 | {"level":"info","message":"POST /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/websocket 200 18ms","method":"POST","requestID":"6c01600c583c0ecb30ed9ce559d48e77","responseTime":18,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/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":"218922e38ca7a274702af65b44b35d51"} device-1 | {"level":"info","message":"POST /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/websocket 200 17ms","method":"POST","requestID":"218922e38ca7a274702af65b44b35d51","responseTime":17,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"033ed3819a2b083c25f736945d4bccbc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667937,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"033ed3819a2b083c25f736945d4bccbc"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"9611a2db-e671-47eb-b0fe-43568280e5bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.170738} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"033ed3819a2b083c25f736945d4bccbc"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? 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":"033ed3819a2b083c25f736945d4bccbc"} device-1 | {"level":"info","message":"GET /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? 200 14ms","method":"GET","requestID":"033ed3819a2b083c25f736945d4bccbc","responseTime":14,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0b54c4e94f67e3ceff74d3fd051fc826","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.091104,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"0b54c4e94f67e3ceff74d3fd051fc826"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"cbcfbdbd-58c5-4e86-9a43-487ce69e0398","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.1933904} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b54c4e94f67e3ceff74d3fd051fc826"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 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":"0b54c4e94f67e3ceff74d3fd051fc826"} device-1 | {"level":"info","message":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 200 16ms","method":"GET","requestID":"0b54c4e94f67e3ceff74d3fd051fc826","responseTime":16,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"32725f50d3f1b638ff42da9a26698b55","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:57580","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.558704,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"32725f50d3f1b638ff42da9a26698b55"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"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:57580","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.051993,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"d35ac2f0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.152975,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"d35b3820-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"324db3fd-5f1a-46b2-bb73-62c17ba6dda2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.27263} 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":"d35ac2f0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"b7899cfd-98fa-47a4-a65c-0d1e6e608da7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.2742388} 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":"d35b3820-2a6c-11ef-91df-9f2f583abbec"},"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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? 200 28ms","method":"GET","requestID":"d35ac2f0-2a6c-11ef-91df-9f2f583abbec","responseTime":28,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 200 27ms","method":"GET","requestID":"d35b3820-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"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/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.360026,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"d36aef90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.176348,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"d36b3db0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.941804,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"93ee0c9e-1986-488d-9853-f888938a3383","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.3786502} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","rebac_allow":false,"scope_allow":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":"d36bd9f0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"78e513fc-97a1-483b-aa66-18c88a6146b9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.3839169} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling 200 24ms","method":"POST","requestID":"d36bd9f0-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/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":"d36aef90-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"7912d5cb-b66a-4451-9b86-362584c4f2a8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.389891} 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":"d36b3db0-2a6c-11ef-91df-9f2f583abbec"},"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":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fded60a8c-712b-4c78-9215-8a71a1f3f589#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fded60a8c-712b-4c78-9215-8a71a1f3f589","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"95465255-8e41-44d1-baa1-2d5b76cf059a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.3990347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"22c02fae-9243-4dd2-9130-069e976a9f13","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.3992546} 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":"32725f50d3f1b638ff42da9a26698b55"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"GET /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? 200 43ms","method":"GET","requestID":"d36aef90-2a6c-11ef-91df-9f2f583abbec","responseTime":43,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"213c409c-d342-4ec8-93fb-1f58620e2c68","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.4055223} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.535177,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} device-1 | {"level":"info","message":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 200 44ms","method":"GET","requestID":"d36b3db0-2a6c-11ef-91df-9f2f583abbec","responseTime":44,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","rebac_allow":false,"scope_allow":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":"d37094e0-2a6c-11ef-91df-9f2f583abbec"},"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/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling 200 14ms","method":"POST","requestID":"d37094e0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.219","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"32725f50d3f1b638ff42da9a26698b55"} experiment-1 | {"level":"info","message":"POST /experiments? 201 213ms","method":"POST","requestID":"32725f50d3f1b638ff42da9a26698b55","responseTime":213,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"76567536-538f-4139-aeb6-3a5b148cdfbf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.4200244} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.570311,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","rebac_allow":false,"scope_allow":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":"d372ded0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"acce6f1937eb7cf4d7c5da598a1bcb50","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling 200 13ms","method":"POST","requestID":"d372ded0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.0552,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"acce6f1937eb7cf4d7c5da598a1bcb50"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4bc888e-d242-44de-ab92-f7ac14f67f83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.436506} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.519793360Z"}]},"request_id":"dae36709-9d43-445c-af40-8d8d07ee2147","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.4367502} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acce6f1937eb7cf4d7c5da598a1bcb50"},"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:37018","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.235225,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","rebac_allow":false,"scope_allow":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":"d3754fd0-2a6c-11ef-91df-9f2f583abbec"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acce6f1937eb7cf4d7c5da598a1bcb50"} device-1 | {"level":"info","message":"GET /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8? 200 17ms","method":"GET","requestID":"acce6f1937eb7cf4d7c5da598a1bcb50","responseTime":17,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling 200 16ms","method":"POST","requestID":"d3754fd0-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"7b0a5356-8dc2-4453-9f04-ef58f99a5d74"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"b1daba90-bc9c-4796-ae12-158f59d49836"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"fc50874c-2d6e-43dc-99da-ba5b05c63b5c"}]},"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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k","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":"0d04d3e07bf56b123caaa47054c389fa","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.964668,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"d3785d10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.809373,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383236,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzNn0.hCjspnBTKgv-q-fLXTH9lqrN0jtzNO7vENdDo40kl1k"} 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":"0d04d3e07bf56b123caaa47054c389fa"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:35.568831559Z"}]},"request_id":"8501a592-c812-4c14-9665-bd7474859a46","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.4610062} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d04d3e07bf56b123caaa47054c389fa"},"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":"14/Jun/2024:16:40:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 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":"0d04d3e07bf56b123caaa47054c389fa"} device-1 | {"level":"info","message":"GET /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec? 200 15ms","method":"GET","requestID":"0d04d3e07bf56b123caaa47054c389fa","responseTime":15,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"e12cd692-cff5-45dd-b9f1-2cb42860a6c6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.467326} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9cf807d2-5f7c-484c-a4d5-c9df4fd8191a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.4677048} 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":"d3785d10-2a6c-11ef-91df-9f2f583abbec"},"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/9aef08e5-d361-4490-b3fa-982a4b8f1d5b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 35ms","method":"POST","requestID":"d3785d10-2a6c-11ef-91df-9f2f583abbec","responseTime":35,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8fb2669b-5f7a-4a9e-9f56-0847776fd048","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.5233371} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.100641,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","rebac_allow":false,"scope_allow":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":"d382e460-2a6c-11ef-91df-9f2f583abbec"},"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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling 200 11ms","method":"POST","requestID":"d382e460-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0a0ec05-2818-4177-ad60-bb5eb445287c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383236.5375235} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.15629,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","rebac_allow":false,"scope_allow":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":"d3850740-2a6c-11ef-91df-9f2f583abbec"},"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/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling 200 11ms","method":"POST","requestID":"d3850740-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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/9aef08e5-d361-4490-b3fa-982a4b8f1d5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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":"8c7c8bfdb7ca16757de59d9fea57cd8e","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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"8c7c8bfdb7ca16757de59d9fea57cd8e","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"8c7c8bfdb7ca16757de59d9fea57cd8e"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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/9aef08e5-d361-4490-b3fa-982a4b8f1d5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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":"feb62b2c67c2a225c3ea40f10ee05121","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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9aef08e5-d361-4490-b3fa-982a4b8f1d5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f41a7a1d-988c-4257-a91a-b5ca6ff7fa16","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.6230857} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.18969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4c29050-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b 200 18ms","method":"GET","requestID":"d4c29050-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 61ms","method":"POST","requestID":"feb62b2c67c2a225c3ea40f10ee05121","responseTime":61,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.066","http_referrer":"","http_user_agent":"node-fetch","requestID":"feb62b2c67c2a225c3ea40f10ee05121"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd2cf668-e05e-4968-bad8-2d8511175369","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.6729636} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.005766,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","rebac_allow":false,"scope_allow":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":"d4caa6a0-2a6c-11ef-91df-9f2f583abbec"},"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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling 200 14ms","method":"POST","requestID":"d4caa6a0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0c73752-575f-41bc-87e0-3a9419e9aa32","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.6906488} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.944024,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","rebac_allow":false,"scope_allow":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":"d4cd3eb0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"f776ea2cbf4117c1fa61498337df3123","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling 200 15ms","method":"POST","requestID":"d4cd3eb0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.756373,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383238,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA"} 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":"f776ea2cbf4117c1fa61498337df3123"},"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/ded60a8c-712b-4c78-9215-8a71a1f3f589"} gateway-1 | {"time_local":"14/Jun/2024:16:40:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589 HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f776ea2cbf4117c1fa61498337df3123"} experiment-1 | {"level":"info","message":"GET /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589 200 16ms","method":"GET","requestID":"f776ea2cbf4117c1fa61498337df3123","responseTime":16,"status":200,"url":"/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1fec20bd37d07fe6a3937a81d3da0205","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.250442,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383238,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA"} 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":"1fec20bd37d07fe6a3937a81d3da0205"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.182744,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383238,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA"} 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":"d4d63f60-2a6c-11ef-91df-9f2f583abbec"},"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/9aef08e5-d361-4490-b3fa-982a4b8f1d5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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":"d711d28e0dfa63639386e56620a9e811","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)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9aef08e5-d361-4490-b3fa-982a4b8f1d5b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9aef08e5-d361-4490-b3fa-982a4b8f1d5b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"b172eaaa-25a9-4e00-9f41-9813a27461b8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.765846} 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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"51f771211e6f41d563e8bf6ab416a9a8","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6897e7a-a8a8-4b31-a34f-87bc6bdfdd47","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.766554} 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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"}}},"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":"d4d63f60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"9aef08e5-d361-4490-b3fa-982a4b8f1d5b","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/9aef08e5-d361-4490-b3fa-982a4b8f1d5b 204 44ms","method":"DELETE","requestID":"d4d63f60-2a6c-11ef-91df-9f2f583abbec","responseTime":44,"status":204,"url":"/peerconnections/9aef08e5-d361-4490-b3fa-982a4b8f1d5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef62b58f-bc59-48ce-a429-6bbd9b169eb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"68e2830c-9160-4fbe-90ce-7d03c58ee4be","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.8220203} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.101631,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8","object_type":"device","rebac_allow":false,"scope_allow":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":"d4e114d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fded60a8c-712b-4c78-9215-8a71a1f3f589': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fded60a8c-712b-4c78-9215-8a71a1f3f589","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"548a11af-4713-4113-bfce-53d6a63a61a0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.8287835} device-1 | {"level":"info","message":"POST /devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/signaling 200 17ms","method":"POST","requestID":"d4e114d0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/ef62b58f-bc59-48ce-a429-6bbd9b169eb8/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32f015d5-168f-4fa1-8cf1-af0d175f677f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.829397} 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":"1fec20bd37d07fe6a3937a81d3da0205"},"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:57580","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fce062f-c9ee-4920-bd4d-4adcf9408aec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d43fcdc0-60a2-4d36-945e-cd90410a7f86","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.840264} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.520737,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec","object_type":"device","rebac_allow":false,"scope_allow":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":"d4e42210-2a6c-11ef-91df-9f2f583abbec"},"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/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling 200 15ms","method":"POST","requestID":"d4e42210-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/8fce062f-c9ee-4920-bd4d-4adcf9408aec/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"} gateway-1 | {"time_local":"14/Jun/2024:16:40:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589 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":"1fec20bd37d07fe6a3937a81d3da0205"} gateway-1 | {"time_local":"14/Jun/2024:16:40:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.767","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2f06c0b9b39fe2e4f89a9a945ede5ba4"} gateway-1 | {"time_local":"14/Jun/2024:16:40:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.776","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f6224f408cd04ad5699042e5f399b1aa"} experiment-1 | {"level":"info","message":"DELETE /experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589 204 177ms","method":"DELETE","requestID":"1fec20bd37d07fe6a3937a81d3da0205","responseTime":177,"status":204,"url":"/experiments/ded60a8c-712b-4c78-9215-8a71a1f3f589"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"d711d28e0dfa63639386e56620a9e811","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"d711d28e0dfa63639386e56620a9e811"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"51f771211e6f41d563e8bf6ab416a9a8","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"51f771211e6f41d563e8bf6ab416a9a8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d0a3e16afa98ef1a160b1d509f5f4834","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/ef62b58f-bc59-48ce-a429-6bbd9b169eb8' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.894686,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383238,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA"} 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":"d0a3e16afa98ef1a160b1d509f5f4834"},"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/8fce062f-c9ee-4920-bd4d-4adcf9408aec' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd60fb011-7e94-46d5-a95a-4f457a638ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"80260196-1d06-4014-8d55-467ba2ac1ab0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.9385023} 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":"d0a3e16afa98ef1a160b1d509f5f4834"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d14d7c7b-d38d-4322-b6e9-bebb70073892","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.9475362} 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":"d0a3e16afa98ef1a160b1d509f5f4834"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd60fb011-7e94-46d5-a95a-4f457a638ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ccdb6573-1400-429b-aeff-2fac3508466a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.9602828} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2757f21a-e5ae-4fb8-9d92-428907c36fad","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.9605837} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0a3e16afa98ef1a160b1d509f5f4834"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd60fb011-7e94-46d5-a95a-4f457a638ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd60fb011-7e94-46d5-a95a-4f457a638ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:38.960266384Z"}]},"request_id":"3dfe80bd-0899-42be-bb47-8bc14aaf45a7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383238.9689236} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0a3e16afa98ef1a160b1d509f5f4834"},"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":"14/Jun/2024:16:40:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.073","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0a3e16afa98ef1a160b1d509f5f4834"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"d0a3e16afa98ef1a160b1d509f5f4834","responseTime":65,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a0cebc49506ad8865feae72b77abff9b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.8056,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383238,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOH0.7XgQ07BMN1Vrkx56L32IDQm4dam2oSWu4J0w61fGrhA"} 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":"a0cebc49506ad8865feae72b77abff9b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ccb3d31-715c-4215-8059-36ee66759861","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d1cd233c-9410-4bf0-befd-812434c97be0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0009015} 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":"a0cebc49506ad8865feae72b77abff9b"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3b537d58-367f-4cbc-aa17-46f07c3f1497","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0067916} 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":"a0cebc49506ad8865feae72b77abff9b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ccb3d31-715c-4215-8059-36ee66759861","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ba198597-c6bf-4163-ab4c-659f1d05061b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.023198} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"febfee34-c79c-4fa6-ba4d-9aec63af27d8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0233283} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0cebc49506ad8865feae72b77abff9b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ccb3d31-715c-4215-8059-36ee66759861","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ccb3d31-715c-4215-8059-36ee66759861","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.023184465Z"}]},"request_id":"0ae25a6e-ab4f-441c-854c-54739957b723","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0292697} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0cebc49506ad8865feae72b77abff9b"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0cebc49506ad8865feae72b77abff9b"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"a0cebc49506ad8865feae72b77abff9b","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"321e02ab2bd5f25d199e3fc377b4cd6a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.805405,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"321e02ab2bd5f25d199e3fc377b4cd6a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feb3c811d-3916-43be-94c2-45eb5fb3e6e7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dae36491-88d6-43d5-845d-81b6422bd07d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0560853} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"321e02ab2bd5f25d199e3fc377b4cd6a"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d7ef029-9825-4192-95f3-fd7fdd928c44","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.065821} 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":"321e02ab2bd5f25d199e3fc377b4cd6a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feb3c811d-3916-43be-94c2-45eb5fb3e6e7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"e5dd45a9-7984-4bb7-9932-70bba52d52c8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.076769} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2943868-55ba-4558-9fcf-af8798216858","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0767992} 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":"321e02ab2bd5f25d199e3fc377b4cd6a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feb3c811d-3916-43be-94c2-45eb5fb3e6e7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feb3c811d-3916-43be-94c2-45eb5fb3e6e7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.076757017Z"}]},"request_id":"a93ae928-3571-4af7-8996-d4a0d2c6fa7c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.0810816} 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":"321e02ab2bd5f25d199e3fc377b4cd6a"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"321e02ab2bd5f25d199e3fc377b4cd6a"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"321e02ab2bd5f25d199e3fc377b4cd6a","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3051c441d02d55dad0cefe6ef809d09a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.83626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"3051c441d02d55dad0cefe6ef809d09a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2816832-fc8d-42f8-bce7-4926a69251fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c032e57-b206-4966-9a8e-dcd246186541","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1091073} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3051c441d02d55dad0cefe6ef809d09a"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92d9745b-6246-494b-90f7-8946a0116b9f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.115815} 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":"3051c441d02d55dad0cefe6ef809d09a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2816832-fc8d-42f8-bce7-4926a69251fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"001c80c9-2005-4267-b389-bd31a6298a5f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.134242} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18c0ec65-6935-4b07-b79a-96e0e25adebc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1345084} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3051c441d02d55dad0cefe6ef809d09a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2816832-fc8d-42f8-bce7-4926a69251fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc2816832-fc8d-42f8-bce7-4926a69251fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.134220649Z"}]},"request_id":"cd0878c3-e3b1-4d85-8526-6ef9f6239ad2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1408622} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3051c441d02d55dad0cefe6ef809d09a"},"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":"14/Jun/2024:16:40:39 +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":"3051c441d02d55dad0cefe6ef809d09a"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"3051c441d02d55dad0cefe6ef809d09a","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"052c000c99ea41fb40cd8ade8d262561","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.769203,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"052c000c99ea41fb40cd8ade8d262561"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b4fcd12-2276-4693-94c9-0850d8c11b27","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"279549b9-ffbc-49f8-a488-e223f184eba0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1706316} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"052c000c99ea41fb40cd8ade8d262561"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7957033-2b5f-4d1a-b583-69a83e6badd5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1773863} 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":"052c000c99ea41fb40cd8ade8d262561"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b4fcd12-2276-4693-94c9-0850d8c11b27","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"20d9f3de-d31b-4b60-883a-d2af98a616eb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1892495} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6bd073a-1a4a-42e1-82fb-ca780bd5f94d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1893094} 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":"052c000c99ea41fb40cd8ade8d262561"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b4fcd12-2276-4693-94c9-0850d8c11b27","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8b4fcd12-2276-4693-94c9-0850d8c11b27","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.189228040Z"}]},"request_id":"fb6372ff-a027-4a75-bb11-b540aeb95a15","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.1951146} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"052c000c99ea41fb40cd8ade8d262561"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"052c000c99ea41fb40cd8ade8d262561"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"052c000c99ea41fb40cd8ade8d262561","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0a8e205a4d9b4024a0ad6b7dabdf1667","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.862559,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"0a8e205a4d9b4024a0ad6b7dabdf1667"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb06371ee-e23f-42f0-837a-d01cc7b8cb6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"05924110-d85f-4efb-b13f-ff727e2b690b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.2241826} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a8e205a4d9b4024a0ad6b7dabdf1667"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0384655d-b3d9-414b-abba-605192fbf710","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.2310855} 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":"0a8e205a4d9b4024a0ad6b7dabdf1667"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb06371ee-e23f-42f0-837a-d01cc7b8cb6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"cf9c822a-043f-47bc-9c3d-78fff95ec666","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.248623} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7efd7fa9-bd97-431f-84b9-fb9f3053052d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.249055} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a8e205a4d9b4024a0ad6b7dabdf1667"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb06371ee-e23f-42f0-837a-d01cc7b8cb6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb06371ee-e23f-42f0-837a-d01cc7b8cb6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.248595122Z"}]},"request_id":"80b2cd42-a9c9-4b8e-8896-c4deed189a8e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.255938} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a8e205a4d9b4024a0ad6b7dabdf1667"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a8e205a4d9b4024a0ad6b7dabdf1667"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"0a8e205a4d9b4024a0ad6b7dabdf1667","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d7146fd1c8a70cb607a3ffce5d439915","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.232446,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"d7146fd1c8a70cb607a3ffce5d439915"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F991df008-0a8e-46f1-8e22-6b6fc9212426","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5acac05d-dbf6-467e-943b-37739eb6982a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.2903843} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7146fd1c8a70cb607a3ffce5d439915"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"843c5335-6bf9-4dbb-ac6e-e17423e8c421","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.2990043} 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":"d7146fd1c8a70cb607a3ffce5d439915"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F991df008-0a8e-46f1-8e22-6b6fc9212426","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d11f5ea9-d9f8-4c30-91fb-da58a7409241","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.310912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"789901a2-1076-4209-880a-0d026bcc9899","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.3109438} 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":"d7146fd1c8a70cb607a3ffce5d439915"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F991df008-0a8e-46f1-8e22-6b6fc9212426","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F991df008-0a8e-46f1-8e22-6b6fc9212426","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.310891391Z"}]},"request_id":"fc550bb1-3469-4ab7-a497-3fe1c62eff6d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.315989} 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":"d7146fd1c8a70cb607a3ffce5d439915"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d7146fd1c8a70cb607a3ffce5d439915"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"d7146fd1c8a70cb607a3ffce5d439915","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2dc2803a4f3a076ee7aeabffe1754aa0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.438052,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"2dc2803a4f3a076ee7aeabffe1754aa0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbcfdc760-0cec-4f03-a095-b83f5a1a1b20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43653d67-1ef8-410c-94a3-19607c8187b6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.3499274} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2dc2803a4f3a076ee7aeabffe1754aa0"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88c41ca7-d149-4327-920d-d64dd08c52e4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.3573563} 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":"2dc2803a4f3a076ee7aeabffe1754aa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbcfdc760-0cec-4f03-a095-b83f5a1a1b20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"0b6adcec-cde3-48dd-8717-d829ed6c400f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.3691554} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f710077c-4116-4bea-a446-c6ac6d5b8abb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.3693252} 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":"2dc2803a4f3a076ee7aeabffe1754aa0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbcfdc760-0cec-4f03-a095-b83f5a1a1b20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbcfdc760-0cec-4f03-a095-b83f5a1a1b20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.369130500Z"}]},"request_id":"db7a547f-3af1-4ab1-826a-e57483e02b79","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.375667} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2dc2803a4f3a076ee7aeabffe1754aa0"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2dc2803a4f3a076ee7aeabffe1754aa0"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"2dc2803a4f3a076ee7aeabffe1754aa0","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a35d400d3faabcdfdfd2a39b9115c51f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.923055,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"a35d400d3faabcdfdfd2a39b9115c51f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45853791-491e-4f5d-b984-ffd2ef08ec4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f3174983-aba2-4f7e-9c9b-cf2364241119","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4173205} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a35d400d3faabcdfdfd2a39b9115c51f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc53f2d4-b6ea-437f-bd25-6dcb389c699e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.424792} 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":"a35d400d3faabcdfdfd2a39b9115c51f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45853791-491e-4f5d-b984-ffd2ef08ec4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"48248560-d022-4e34-917a-197c95e56379","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4383366} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18a0e442-57a1-4f72-af31-5e021cb03bd6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4384913} 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":"a35d400d3faabcdfdfd2a39b9115c51f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45853791-491e-4f5d-b984-ffd2ef08ec4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45853791-491e-4f5d-b984-ffd2ef08ec4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.438312409Z"}]},"request_id":"c2caac4d-5dfb-4e61-8a50-4b9002759588","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4456887} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a35d400d3faabcdfdfd2a39b9115c51f"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a35d400d3faabcdfdfd2a39b9115c51f"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"a35d400d3faabcdfdfd2a39b9115c51f","responseTime":62,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"26a9292de0393ed7a893ae995aa71129","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.83272,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"26a9292de0393ed7a893ae995aa71129"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F421c3750-0812-4f8f-839e-c4fd2c0f59d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dba1a1c2-695e-4d9e-a877-7f2a1c6538fa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4784799} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26a9292de0393ed7a893ae995aa71129"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8124e4bb-8d09-4766-82dd-7f4a07d144ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4870024} 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":"26a9292de0393ed7a893ae995aa71129"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F421c3750-0812-4f8f-839e-c4fd2c0f59d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"500f61e6-a9cd-41d4-b89c-2a8bbd2f96fe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4989789} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8603242-88f7-4bbb-8e87-35cb02ab00e7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.4993253} 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":"26a9292de0393ed7a893ae995aa71129"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F421c3750-0812-4f8f-839e-c4fd2c0f59d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F421c3750-0812-4f8f-839e-c4fd2c0f59d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.498952033Z"}]},"request_id":"cc81f8dc-e540-4e07-afad-ab8f1e256193","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5061126} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26a9292de0393ed7a893ae995aa71129"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"26a9292de0393ed7a893ae995aa71129"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"26a9292de0393ed7a893ae995aa71129","responseTime":53,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6470624c92f43466adb88fe882c71a49","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.718154,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"6470624c92f43466adb88fe882c71a49"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"916ae8bb-9de2-4dc6-bbb9-96a2f81860b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5482998} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6470624c92f43466adb88fe882c71a49"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"17ce5eb1-4395-4745-a60f-d10154035b59","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5564144} 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":"6470624c92f43466adb88fe882c71a49"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"b4374a19-c782-477b-860c-89aab73b9dd5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5703664} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3bb73a7-6e5b-4b8e-b057-da514f6993ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5706434} 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":"6470624c92f43466adb88fe882c71a49"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.570340367Z"}]},"request_id":"42dd00fa-732c-4b5d-9980-179dd8801bef","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.5792727} 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":"6470624c92f43466adb88fe882c71a49"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.072","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6470624c92f43466adb88fe882c71a49"} device-1 | {"level":"info","message":"POST /devices? 201 67ms","method":"POST","requestID":"6470624c92f43466adb88fe882c71a49","responseTime":67,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"df8e51a9c6dc0db0add6f4b15af5ffb9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.576238,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"df8e51a9c6dc0db0add6f4b15af5ffb9"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c573608e-88a2-425e-96fc-675098e9c562","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6187868} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df8e51a9c6dc0db0add6f4b15af5ffb9"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d486ca63-91ad-4bd6-b115-9ac86ae4f610","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6267874} 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":"df8e51a9c6dc0db0add6f4b15af5ffb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"5a3ac3e7-9f49-4f8a-939d-e58b702cf6b0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6391234} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"42bc03c5-3ec5-4824-9b0e-ef1defcd9fbc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6394744} 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":"df8e51a9c6dc0db0add6f4b15af5ffb9"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.639097866Z"}]},"request_id":"755652b9-bfbb-4e12-b4f2-457f2eee88dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6475234} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df8e51a9c6dc0db0add6f4b15af5ffb9"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"df8e51a9c6dc0db0add6f4b15af5ffb9"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"df8e51a9c6dc0db0add6f4b15af5ffb9","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"556c77296f8730a2566b41efc0198a22","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.234395,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"556c77296f8730a2566b41efc0198a22"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ad0ef12f-1296-44d4-b72b-56096351aa2c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6896324} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"556c77296f8730a2566b41efc0198a22"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b8ac252b-748c-4235-982f-ffb0c7a5a010","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.6980443} 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":"556c77296f8730a2566b41efc0198a22"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"383e7456-99bf-48d7-a397-cdb627b09c0f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.712267} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"48b81691-05b0-40a7-9309-9919631c48e4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.7127714} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"556c77296f8730a2566b41efc0198a22"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.712179137Z"}]},"request_id":"c23a5375-49d1-40c0-8510-b4a9ff5e8118","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.7196648} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"556c77296f8730a2566b41efc0198a22"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"556c77296f8730a2566b41efc0198a22"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"556c77296f8730a2566b41efc0198a22","responseTime":63,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d1114f44029d5339349f3a72157cb0b8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291785,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"d1114f44029d5339349f3a72157cb0b8"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.570340367Z"}]},"request_id":"d960dc22-41ee-4d43-b63b-b196999ac3e7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.7531648} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1114f44029d5339349f3a72157cb0b8"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb287a61-27b7-4811-8cc4-8f8cde4b064d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.7617564} 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":"d1114f44029d5339349f3a72157cb0b8"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.570340367Z"}]},"request_id":"b6f84e16-8323-4203-8f97-e3b952848e49","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.7753763} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1114f44029d5339349f3a72157cb0b8"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6c5b8d41-0de5-4505-b045-6d266b24462c? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d1114f44029d5339349f3a72157cb0b8"} device-1 | {"level":"info","message":"PATCH /devices/6c5b8d41-0de5-4505-b045-6d266b24462c? 200 43ms","method":"PATCH","requestID":"d1114f44029d5339349f3a72157cb0b8","responseTime":43,"status":200,"url":"/devices/6c5b8d41-0de5-4505-b045-6d266b24462c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f874065fa5a1ee4d089efd4d7ebe1feb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.151535,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"f874065fa5a1ee4d089efd4d7ebe1feb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.639097866Z"}]},"request_id":"344754aa-f1c4-458a-9155-9530e5940042","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8049452} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f874065fa5a1ee4d089efd4d7ebe1feb"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e79a3f2-93f9-4f6b-92eb-a7c9e3140df4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8129938} 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":"f874065fa5a1ee4d089efd4d7ebe1feb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.639097866Z"}]},"request_id":"a4d2e941-0509-41f3-b0c4-d38973506e56","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8242517} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f874065fa5a1ee4d089efd4d7ebe1feb"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/915a219b-36eb-4531-af1f-f70a29e32f0f? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f874065fa5a1ee4d089efd4d7ebe1feb"} device-1 | {"level":"info","message":"PATCH /devices/915a219b-36eb-4531-af1f-f70a29e32f0f? 200 40ms","method":"PATCH","requestID":"f874065fa5a1ee4d089efd4d7ebe1feb","responseTime":40,"status":200,"url":"/devices/915a219b-36eb-4531-af1f-f70a29e32f0f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c545bd747741c9634eb6c1339d29ab6f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.265197,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"c545bd747741c9634eb6c1339d29ab6f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.712179137Z"}]},"request_id":"e2d71e4c-994e-476c-b491-0c5fd681b2c7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8547018} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c545bd747741c9634eb6c1339d29ab6f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcf0244f-e329-4cd1-87dd-b94d1aa81eee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8628094} 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":"c545bd747741c9634eb6c1339d29ab6f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.712179137Z"}]},"request_id":"f2e97e3a-3cff-4bd1-95c8-eba948edf1c9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.873087} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c545bd747741c9634eb6c1339d29ab6f"},"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":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d211450c-3e25-42c4-bdaf-1e492095757f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c545bd747741c9634eb6c1339d29ab6f"} device-1 | {"level":"info","message":"PATCH /devices/d211450c-3e25-42c4-bdaf-1e492095757f? 200 39ms","method":"PATCH","requestID":"c545bd747741c9634eb6c1339d29ab6f","responseTime":39,"status":200,"url":"/devices/d211450c-3e25-42c4-bdaf-1e492095757f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"57b920097f6db991939dbf56dc2be987","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.338649,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"57b920097f6db991939dbf56dc2be987"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6c5b8d41-0de5-4505-b045-6d266b24462c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.570340367Z"}]},"request_id":"367caa12-469a-4104-8faa-2897d8014181","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.8985682} 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":"57b920097f6db991939dbf56dc2be987"},"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:57580","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.097506,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.132637,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d60fb011-7e94-46d5-a95a-4f457a638ec2","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d60fb011-7e94-46d5-a95a-4f457a638ec2","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"57b920097f6db991939dbf56dc2be987"},"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/0ccb3d31-715c-4215-8059-36ee66759861","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0ccb3d31-715c-4215-8059-36ee66759861","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"57b920097f6db991939dbf56dc2be987"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.709695,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.390819,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eb3c811d-3916-43be-94c2-45eb5fb3e6e7","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eb3c811d-3916-43be-94c2-45eb5fb3e6e7","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"57b920097f6db991939dbf56dc2be987"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"57b920097f6db991939dbf56dc2be987"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6c5b8d41-0de5-4505-b045-6d266b24462c? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"57b920097f6db991939dbf56dc2be987"} device-1 | {"level":"info","message":"GET /devices/6c5b8d41-0de5-4505-b045-6d266b24462c? 200 47ms","method":"GET","requestID":"57b920097f6db991939dbf56dc2be987","responseTime":47,"status":200,"url":"/devices/6c5b8d41-0de5-4505-b045-6d266b24462c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bc35881942a8a45759a2b231a8340b2b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.308301,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/915a219b-36eb-4531-af1f-f70a29e32f0f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F915a219b-36eb-4531-af1f-f70a29e32f0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.639097866Z"}]},"request_id":"bf497fe0-c103-4315-aeab-ce786731b382","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383239.95465} 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":"bc35881942a8a45759a2b231a8340b2b"},"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:57580","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.200915,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.66417,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.21726,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c2816832-fc8d-42f8-bce7-4926a69251fb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c2816832-fc8d-42f8-bce7-4926a69251fb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8b4fcd12-2276-4693-94c9-0850d8c11b27","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8b4fcd12-2276-4693-94c9-0850d8c11b27","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06371ee-e23f-42f0-837a-d01cc7b8cb6b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b06371ee-e23f-42f0-837a-d01cc7b8cb6b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.711786,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/991df008-0a8e-46f1-8e22-6b6fc9212426","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/991df008-0a8e-46f1-8e22-6b6fc9212426","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} authorization-1 | {"level":"info","message":"POST /authorize 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37046","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.976969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:37046","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.425354,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383239,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzIzOX0.z_leDwxvUB0iZmTLRj49xbfgp9XhzT26DC0GGEygD4g"} 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":"bc35881942a8a45759a2b231a8340b2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/915a219b-36eb-4531-af1f-f70a29e32f0f? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bc35881942a8a45759a2b231a8340b2b"} device-1 | {"level":"info","message":"GET /devices/915a219b-36eb-4531-af1f-f70a29e32f0f? 200 64ms","method":"GET","requestID":"bc35881942a8a45759a2b231a8340b2b","responseTime":64,"status":200,"url":"/devices/915a219b-36eb-4531-af1f-f70a29e32f0f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"94ea1da5f3a5e591fb3b5818c6ab2fcf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.249078,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d211450c-3e25-42c4-bdaf-1e492095757f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd211450c-3e25-42c4-bdaf-1e492095757f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:39.712179137Z"}]},"request_id":"870aa3e8-6603-462c-856e-0fa5ae63e83c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.0254295} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"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:57580","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174216,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.087215,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37030","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.947864,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bcfdc760-0cec-4f03-a095-b83f5a1a1b20","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/bcfdc760-0cec-4f03-a095-b83f5a1a1b20","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45853791-491e-4f5d-b984-ffd2ef08ec4c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/45853791-491e-4f5d-b984-ffd2ef08ec4c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"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/421c3750-0812-4f8f-839e-c4fd2c0f59d3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/421c3750-0812-4f8f-839e-c4fd2c0f59d3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:37038","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.260145,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6c5b8d41-0de5-4505-b045-6d266b24462c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"94ea1da5f3a5e591fb3b5818c6ab2fcf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d211450c-3e25-42c4-bdaf-1e492095757f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"94ea1da5f3a5e591fb3b5818c6ab2fcf"} device-1 | {"level":"info","message":"GET /devices/d211450c-3e25-42c4-bdaf-1e492095757f? 200 43ms","method":"GET","requestID":"94ea1da5f3a5e591fb3b5818c6ab2fcf","responseTime":43,"status":200,"url":"/devices/d211450c-3e25-42c4-bdaf-1e492095757f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8d94b36c1131e67efc1de54f250be131","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.233406,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"8d94b36c1131e67efc1de54f250be131"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0ae09396-f6e1-40a4-9bfb-43b2258dae53","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.0934231} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8d94b36c1131e67efc1de54f250be131"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58eebc64-2509-4068-9c25-a747b8aca303","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1011903} 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":"8d94b36c1131e67efc1de54f250be131"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"accccd13-6a0d-4064-a16e-7e42978455de","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1144657} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66735cc7-e76d-40ba-bf93-ff3d63e8d63d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1148188} 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":"8d94b36c1131e67efc1de54f250be131"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.114443641Z"}]},"request_id":"be008558-a092-4218-a831-c159e2254201","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1215363} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8d94b36c1131e67efc1de54f250be131"},"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":"14/Jun/2024:16:40:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d94b36c1131e67efc1de54f250be131"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"8d94b36c1131e67efc1de54f250be131","responseTime":58,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"acda8e239c97dcbc0f7d40f8544a114b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.338148,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"acda8e239c97dcbc0f7d40f8544a114b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ef1b97a8-123c-4e5c-9a5b-ad4552b91611","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1594112} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acda8e239c97dcbc0f7d40f8544a114b"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1817523c-00d9-4478-97ea-fd066e7e3b06","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1648161} 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":"acda8e239c97dcbc0f7d40f8544a114b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ec9340ca-1e02-4c88-996b-e7d7a87a67cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.1747978} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5727621d-47f4-4e84-950d-28f3698b7f94","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.174938} 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":"acda8e239c97dcbc0f7d40f8544a114b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.174773144Z"}]},"request_id":"33a8cec4-64ae-495b-812b-bc9291d191bc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.179512} 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":"acda8e239c97dcbc0f7d40f8544a114b"},"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":"14/Jun/2024:16:40:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acda8e239c97dcbc0f7d40f8544a114b"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"acda8e239c97dcbc0f7d40f8544a114b","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e57657b1dbb498cb8af71e9aa633479a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.213213,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383240,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0MH0.hLhN7hMEv6slXRpgMOnRRGZSplBDeN_wUTG_KZUS8qY"} 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":"e57657b1dbb498cb8af71e9aa633479a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"548ff6b7-44d0-4607-9ad8-1adb1bd41799","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.222182} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e57657b1dbb498cb8af71e9aa633479a"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"617e679a-8a77-4a17-90ac-752a844369ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.2296133} 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":"e57657b1dbb498cb8af71e9aa633479a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"b9d4b261-c2ca-4a57-b1b8-82089388b560","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.2403357} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a858029f-990a-48fd-a121-9e6310c82fad","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.240526} 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":"e57657b1dbb498cb8af71e9aa633479a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.240309183Z"}]},"request_id":"3fdb95c2-20b6-4ea6-87e6-350f468ca57d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383240.2473526} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e57657b1dbb498cb8af71e9aa633479a"},"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 60ms","method":"POST","requestID":"e57657b1dbb498cb8af71e9aa633479a","responseTime":60,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e57657b1dbb498cb8af71e9aa633479a"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0c7496aacffaafd01031a1cc0b7ff446","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/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":"0c7496aacffaafd01031a1cc0b7ff446"} device-1 | {"level":"info","message":"OPTIONS /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/websocket 200 1ms","method":"OPTIONS","requestID":"0c7496aacffaafd01031a1cc0b7ff446","responseTime":1,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/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":"ace32cf4d5c77a2ccb478bcba7dc2596","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9c3e32b33167809397ddc6374e5dc53c","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/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":"ace32cf4d5c77a2ccb478bcba7dc2596"} device-1 | {"level":"info","message":"OPTIONS /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/websocket 200 2ms","method":"OPTIONS","requestID":"ace32cf4d5c77a2ccb478bcba7dc2596","responseTime":2,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20179,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"167ed3f31126112d1384f4f2e765d973","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":"9c3e32b33167809397ddc6374e5dc53c"},"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:57580","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.033218,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"167ed3f31126112d1384f4f2e765d973"},"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":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.071","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9c3e32b33167809397ddc6374e5dc53c"} device-1 | {"level":"info","message":"POST /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/websocket 200 62ms","method":"POST","requestID":"9c3e32b33167809397ddc6374e5dc53c","responseTime":62,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.071","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"167ed3f31126112d1384f4f2e765d973"} device-1 | {"level":"info","message":"POST /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/websocket 200 66ms","method":"POST","requestID":"167ed3f31126112d1384f4f2e765d973","responseTime":66,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"632dbc088cc826a07adae2f73bf240d1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734041,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"632dbc088cc826a07adae2f73bf240d1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.240309183Z"}]},"request_id":"2a4fba76-04e6-4517-a65e-f615bc93d8e7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.3480566} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"632dbc088cc826a07adae2f73bf240d1"},"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":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 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":"632dbc088cc826a07adae2f73bf240d1"} device-1 | {"level":"info","message":"GET /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 200 19ms","method":"GET","requestID":"632dbc088cc826a07adae2f73bf240d1","responseTime":19,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f1f84e96244fb000dfb21c46c1ac3a4b","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:57580","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.56699,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"f1f84e96244fb000dfb21c46c1ac3a4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"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:57580","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.77889,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d7063ec0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.130861,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d7068ce0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.174773144Z"}]},"request_id":"8ba9967e-43b9-410b-9d45-5bdefec0d98c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.424472} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7063ec0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.240309183Z"}]},"request_id":"807b4c04-d840-4699-b0fd-9b0b36720646","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.4258611} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7068ce0-2a6c-11ef-91df-9f2f583abbec"},"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/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 200 18ms","method":"GET","requestID":"d7068ce0-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.700848,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d7063ec0-2a6c-11ef-91df-9f2f583abbec"},"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/8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c? 200 25ms","method":"GET","requestID":"d7063ec0-2a6c-11ef-91df-9f2f583abbec","responseTime":25,"status":200,"url":"/devices/8ddb37cb-e44f-4f7d-8c06-d8aa02fb605c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"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/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700371,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d7138530-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.826801,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d713d350-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.261629,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e2ec14d-302a-49b9-9c80-70e303decaf0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.512262} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","rebac_allow":false,"scope_allow":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":"d713fa60-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.114443641Z"}]},"request_id":"58effad5-94b6-4509-8c26-029c1e5bc70d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.513872} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.240309183Z"}]},"request_id":"b8df7b54-357c-4295-866b-1077b34fa074","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5162816} 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":"d7138530-2a6c-11ef-91df-9f2f583abbec"},"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 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":"d713d350-2a6c-11ef-91df-9f2f583abbec"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling 200 22ms","method":"POST","requestID":"d713fa60-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8? 200 27ms","method":"GET","requestID":"d7138530-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18ab48d9-0f93-462b-9c47-d25990e647c3#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18ab48d9-0f93-462b-9c47-d25990e647c3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"1c4b3b2d-faf2-4bee-bc07-aea849dfadd9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5284743} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 200 29ms","method":"GET","requestID":"d713d350-2a6c-11ef-91df-9f2f583abbec","responseTime":29,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c294b0e-6575-4de0-8038-c98a80597db1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5297503} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"f1f84e96244fb000dfb21c46c1ac3a4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7f85e7f-6317-4cfc-a193-cb8d80b9fa44","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.539113} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":7.896102,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} 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":"d717caf0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f1f84e96244fb000dfb21c46c1ac3a4b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 177ms","method":"POST","requestID":"f1f84e96244fb000dfb21c46c1ac3a4b","responseTime":177,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling 200 18ms","method":"POST","requestID":"d717caf0-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72d90006-727e-4d57-a01a-1f772e82938e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5420065} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.509543,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","rebac_allow":false,"scope_allow":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":"d718dc60-2a6c-11ef-91df-9f2f583abbec"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling 200 18ms","method":"POST","requestID":"d718dc60-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"ac7508a21be5dc68cfbe04c1752c0dc3","responseTime":8,"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:57580","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671155,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"ac7508a21be5dc68cfbe04c1752c0dc3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9be24547-54b6-410b-b4b6-b3ed828ccfaa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5597937} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.480209,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","rebac_allow":false,"scope_allow":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":"d71c10b0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.114443641Z"}]},"request_id":"a8638af8-d5b3-4638-8886-70f35726b2e7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5635262} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling 200 9ms","method":"POST","requestID":"d71c10b0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/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":"ac7508a21be5dc68cfbe04c1752c0dc3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"c2a7ec96-b89c-492b-a8cd-c24580bbb11a"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"ea4969c9-a2ab-453c-a29b-800ad6fa088a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"20e927be-bef1-43af-b11c-a17c8b51302d"}]},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5"}],"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:57580","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ac7508a21be5dc68cfbe04c1752c0dc3"} device-1 | {"level":"info","message":"GET /devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8? 200 16ms","method":"GET","requestID":"ac7508a21be5dc68cfbe04c1752c0dc3","responseTime":16,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.57135,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d71de570-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"078065bf4eb077e5ea69d21c2e58e054","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.012716,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"078065bf4eb077e5ea69d21c2e58e054"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:40.240309183Z"}]},"request_id":"2147fb85-af56-442d-a5e8-67398b60ddd2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5829177} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"078065bf4eb077e5ea69d21c2e58e054"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"74eae19b-2f4b-4bd8-bbb0-633469633cad","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5862458} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 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":"078065bf4eb077e5ea69d21c2e58e054"} device-1 | {"level":"info","message":"GET /devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5? 200 12ms","method":"GET","requestID":"078065bf4eb077e5ea69d21c2e58e054","responseTime":12,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c3d9f61-f936-4281-9509-8ecb81a6c2ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.5866134} 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":"d71de570-2a6c-11ef-91df-9f2f583abbec"},"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/2ff273df-b29f-4ff8-9908-6cb142204d54'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54'"} 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 33ms","method":"POST","requestID":"d71de570-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"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/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1087ca2-071b-471b-ac05-fcfcffcfb959","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.6338024} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.617128,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d7275b50-2a6c-11ef-91df-9f2f583abbec"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling 200 9ms","method":"POST","requestID":"d7275b50-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e0fb6384-2473-4e1f-841b-15e4684cbff4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.6459227} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.129281,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d7290900-2a6c-11ef-91df-9f2f583abbec"},"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/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling 200 12ms","method":"POST","requestID":"d7290900-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5ad513f8461f1f333cee3985ca17d3e0","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":"new","url":"http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"5ad513f8461f1f333cee3985ca17d3e0","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"5ad513f8461f1f333cee3985ca17d3e0"} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","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/2ff273df-b29f-4ff8-9908-6cb142204d54' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","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":"631f23bdbea68210fa29c1f0c2b1fd63","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/4de9e17c-f6d0-4459-abd2-83083fbe57d8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2ff273df-b29f-4ff8-9908-6cb142204d54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"930df913-1413-4c30-80f0-5b4d27fa292a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.7302966} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.329727,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54","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":"d7360150-2a6c-11ef-91df-9f2f583abbec"},"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/2ff273df-b29f-4ff8-9908-6cb142204d54 200 8ms","method":"GET","requestID":"d7360150-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 33ms","method":"POST","requestID":"631f23bdbea68210fa29c1f0c2b1fd63","responseTime":33,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"631f23bdbea68210fa29c1f0c2b1fd63"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"981aedd2-4d55-40b0-a7b2-df45d31b9424","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.7584765} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.165409,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","rebac_allow":false,"scope_allow":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":"d73a6e20-2a6c-11ef-91df-9f2f583abbec"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling 200 9ms","method":"POST","requestID":"d73a6e20-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cdb536d7-f084-41bb-afe3-c6e5fe5fac75","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.7698512} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.334497,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d73c1bd0-2a6c-11ef-91df-9f2f583abbec"},"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/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling 200 9ms","method":"POST","requestID":"d73c1bd0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"231f2d17da321556ed73385a1849085d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.633726,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"231f2d17da321556ed73385a1849085d"},"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/18ab48d9-0f93-462b-9c47-d25990e647c3"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"231f2d17da321556ed73385a1849085d"} experiment-1 | {"level":"info","message":"GET /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3 200 9ms","method":"GET","requestID":"231f2d17da321556ed73385a1849085d","responseTime":9,"status":200,"url":"/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d0211e2dda3d32ed762afbe801a3f670","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.753537,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d0211e2dda3d32ed762afbe801a3f670"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.65617,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"d744ce60-2a6c-11ef-91df-9f2f583abbec"},"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/2ff273df-b29f-4ff8-9908-6cb142204d54' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","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":"dc349ca02f84c4512c5847b6ef9bcaa8","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2ff273df-b29f-4ff8-9908-6cb142204d54': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2ff273df-b29f-4ff8-9908-6cb142204d54","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"62384efe-5fb3-4111-be83-32afecb472ed","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.838439} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6a644336-0a96-4f79-817a-fb414fda4ee4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.8388195} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/4de9e17c-f6d0-4459-abd2-83083fbe57d8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"d8edc34ceeba4d20905e7bb3fb29658f","responseTime":0,"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"}}},"level":"info","message":"received a callback"} 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":"d744ce60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"peerconnection":"2ff273df-b29f-4ff8-9908-6cb142204d54","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/2ff273df-b29f-4ff8-9908-6cb142204d54 204 32ms","method":"DELETE","requestID":"d744ce60-2a6c-11ef-91df-9f2f583abbec","responseTime":32,"status":204,"url":"/peerconnections/2ff273df-b29f-4ff8-9908-6cb142204d54"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4de9e17c-f6d0-4459-abd2-83083fbe57d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"503740e2-fd88-4a13-b460-d18efa1627ce","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.8763373} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.619178,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d74c4870-2a6c-11ef-91df-9f2f583abbec"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling 200 11ms","method":"POST","requestID":"d74c4870-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/4de9e17c-f6d0-4459-abd2-83083fbe57d8/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18ab48d9-0f93-462b-9c47-d25990e647c3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18ab48d9-0f93-462b-9c47-d25990e647c3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"c3341f02-41bd-4226-8e97-519579374dfa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.883974} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78045d7d-b68f-433b-8865-858b7eae7638","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.8842437} 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":"d0211e2dda3d32ed762afbe801a3f670"},"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:57580","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"048249c6-1f64-46c3-80ae-07ce114fdf21","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.8902633} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.254419,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d74e4440-2a6c-11ef-91df-9f2f583abbec"},"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/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling 200 10ms","method":"POST","requestID":"d74e4440-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0211e2dda3d32ed762afbe801a3f670"} experiment-1 | {"level":"info","message":"DELETE /experiments/18ab48d9-0f93-462b-9c47-d25990e647c3 204 129ms","method":"DELETE","requestID":"d0211e2dda3d32ed762afbe801a3f670","responseTime":129,"status":204,"url":"/experiments/18ab48d9-0f93-462b-9c47-d25990e647c3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 106ms","method":"POST","requestID":"dc349ca02f84c4512c5847b6ef9bcaa8","responseTime":106,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.110","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc349ca02f84c4512c5847b6ef9bcaa8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 106ms","method":"POST","requestID":"d8edc34ceeba4d20905e7bb3fb29658f","responseTime":106,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.110","http_referrer":"","http_user_agent":"node-fetch","requestID":"d8edc34ceeba4d20905e7bb3fb29658f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"70a1535691f63824939c246caebd8e5d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2645","request_time":"0.642","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e04bada516060d26795c27146a4b115a"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.89468,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:42Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"0.657","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"83dc43694db0e92f718fd7f6179bd7eb"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"70a1535691f63824939c246caebd8e5d"},"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/4de9e17c-f6d0-4459-abd2-83083fbe57d8' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/25ab5d3f-ee51-4521-b41d-ab6dc170d4e5' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4c00460d-0902-4901-9ca2-c66c2ba05d84","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.9748118} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"70a1535691f63824939c246caebd8e5d"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58177ed5-4631-4ece-b311-80e23ddcebb5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.9793003} 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":"70a1535691f63824939c246caebd8e5d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7628dc84-d6ea-4f6d-be4b-67bc7486e94f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.9899147} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a3ca448-b5bc-4de2-99f5-57c10b85e0d4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.9901617} 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":"70a1535691f63824939c246caebd8e5d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"a272ca81-3036-4d0c-9456-c5b6968551a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383242.9942698} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"70a1535691f63824939c246caebd8e5d"},"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":"14/Jun/2024:16:40: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.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"70a1535691f63824939c246caebd8e5d"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"70a1535691f63824939c246caebd8e5d","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4985749e94fc712ca43c8ee1a3acfb82","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.713493,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383242,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0Mn0.Mm0aG2-2Nl1D8s_K8nrIwjyQPz6HlWBNq2LnCdgZY8I"} 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":"4985749e94fc712ca43c8ee1a3acfb82"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fc41c537-dbad-4524-ab0e-1f93d671544a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.0162015} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4985749e94fc712ca43c8ee1a3acfb82"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b7256f8-a9c3-4965-84a5-d1bd9f8665a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.0208333} 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":"4985749e94fc712ca43c8ee1a3acfb82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"98ce40f6-00d9-4d6b-936c-9822db9c14dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.0389912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ed0ac52-3fd2-43cf-b036-fcae57cd5b5e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.0392888} 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":"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":"4985749e94fc712ca43c8ee1a3acfb82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:43.038974901Z"}]},"request_id":"6eff8a0b-c8fa-40da-b51f-d8fe4c2fc095","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.043782} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4985749e94fc712ca43c8ee1a3acfb82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"4985749e94fc712ca43c8ee1a3acfb82","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4985749e94fc712ca43c8ee1a3acfb82"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0M30.cUeY1BNa4Fpje2Nq5c3qp1ksDb3uDhYKygQ_sqhO7tU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b6e84e04f54a9c007ae34b10325e3384","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.93697,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383243,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0M30.cUeY1BNa4Fpje2Nq5c3qp1ksDb3uDhYKygQ_sqhO7tU"} 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":"b6e84e04f54a9c007ae34b10325e3384"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"05b0c27b-fd4e-40e2-a958-9d2735c4a6b3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.5430949} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6e84e04f54a9c007ae34b10325e3384"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ec1a765e-ed75-447c-b25b-9d7ad9d6551e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.5508502} 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":"b6e84e04f54a9c007ae34b10325e3384"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"31e6d2be-c537-410b-9a1c-df355c91e81b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383243.5639575} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b6e84e04f54a9c007ae34b10325e3384"},"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":"14/Jun/2024:16:40:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b6e84e04f54a9c007ae34b10325e3384"} device-1 | {"level":"info","message":"PATCH /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900 200 40ms","method":"PATCH","requestID":"b6e84e04f54a9c007ae34b10325e3384","responseTime":40,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0M30.cUeY1BNa4Fpje2Nq5c3qp1ksDb3uDhYKygQ_sqhO7tU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d777a97fa53a7e776cb3ffa0bd1dd7f2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.187023,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383243,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0M30.cUeY1BNa4Fpje2Nq5c3qp1ksDb3uDhYKygQ_sqhO7tU"} 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":"d777a97fa53a7e776cb3ffa0bd1dd7f2"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900/websocket 200 22ms","method":"POST","requestID":"d777a97fa53a7e776cb3ffa0bd1dd7f2","responseTime":22,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:40:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/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":"d777a97fa53a7e776cb3ffa0bd1dd7f2"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900' 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":"fd361f3bff3fa3299977562da97b29ac","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/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":"fd361f3bff3fa3299977562da97b29ac"} device-1 | {"level":"info","message":"OPTIONS /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/websocket 200 1ms","method":"OPTIONS","requestID":"fd361f3bff3fa3299977562da97b29ac","responseTime":1,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c5568ffe0825b93ef903cad04a4fb615","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870278,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"c5568ffe0825b93ef903cad04a4fb615"},"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":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c5568ffe0825b93ef903cad04a4fb615"} device-1 | {"level":"info","message":"POST /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/websocket 200 17ms","method":"POST","requestID":"c5568ffe0825b93ef903cad04a4fb615","responseTime":17,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"94bd3337c72981f9b760acc36e8ce9f5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.779948,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"94bd3337c72981f9b760acc36e8ce9f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"8e97fe58-a8d1-47d9-b36c-1dbf21dd8583","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.1080065} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"94bd3337c72981f9b760acc36e8ce9f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"GET /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900? 200 18ms","method":"GET","requestID":"94bd3337c72981f9b760acc36e8ce9f5","responseTime":18,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"94bd3337c72981f9b760acc36e8ce9f5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0340d275bcca17c77330623358254989","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.83168,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"0340d275bcca17c77330623358254989"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:43.038974901Z"}]},"request_id":"58bd253a-90a7-4831-96d7-41ed88226820","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.1314483} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0340d275bcca17c77330623358254989"},"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":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 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":"0340d275bcca17c77330623358254989"} device-1 | {"level":"info","message":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 200 14ms","method":"GET","requestID":"0340d275bcca17c77330623358254989","responseTime":14,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cae43191fa8176145d3bd2a5f0b9defe","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:57580","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.88715,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"cae43191fa8176145d3bd2a5f0b9defe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"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:57580","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622156,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"d8abb160-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.768325,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"d8abd870-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"5717af47-cd83-4539-b8bf-bc8076a5befe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.183904} 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":"d8abb160-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:43.038974901Z"}]},"request_id":"2804bcf6-6e80-464a-becf-f6ec58bca101","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.1869762} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8abd870-2a6c-11ef-91df-9f2f583abbec"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900? 200 17ms","method":"GET","requestID":"d8abb160-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 200 17ms","method":"GET","requestID":"d8abd870-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"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/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.138492,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"d8b5ea90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70117,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"d8b638b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b789b8e0-58c4-4a9e-b5e7-5ba0c1964188","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2527406} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.576962,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","rebac_allow":false,"scope_allow":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":"d8b686d0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"75347318-c9e9-4e94-b189-026ac950abc5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.256012} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b5ea90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"POST /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling 200 15ms","method":"POST","requestID":"d8b686d0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:43.038974901Z"}]},"request_id":"f5b24b47-76d3-47c7-b149-786425236729","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2590735} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b638b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900? 200 27ms","method":"GET","requestID":"d8b5ea90-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"750ae64b-77cd-4486-bbb4-bfc057ed6d2f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.268751} device-1 | {"level":"info","message":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 200 26ms","method":"GET","requestID":"d8b638b0-2a6c-11ef-91df-9f2f583abbec","responseTime":26,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580223,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d8b945f0-2a6c-11ef-91df-9f2f583abbec"},"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"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F43ccdfdd-a9b7-4ce0-9804-08014448a3b7#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F43ccdfdd-a9b7-4ce0-9804-08014448a3b7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"de7a7f95-4404-4c9d-94f5-04b8dd29738b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2740617} device-1 | {"level":"info","message":"POST /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling 200 11ms","method":"POST","requestID":"d8b945f0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de383124-2381-4de9-ab5b-c424bba48458","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2742977} 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":"cae43191fa8176145d3bd2a5f0b9defe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2628be41-d23e-405a-84fd-f727b9619ece","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2772222} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.978121,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d8baa580-2a6c-11ef-91df-9f2f583abbec"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling 200 10ms","method":"POST","requestID":"d8baa580-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cae43191fa8176145d3bd2a5f0b9defe"} experiment-1 | {"level":"info","message":"POST /experiments? 201 143ms","method":"POST","requestID":"cae43191fa8176145d3bd2a5f0b9defe","responseTime":143,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a3df215e5cccc2eb88a4404030068a8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e76c7d9b-1935-4ce2-a12e-68fa844b8a4c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2912326} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.516518,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"d8bc7a40-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:37018","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658706,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"2a3df215e5cccc2eb88a4404030068a8"},"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/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling 200 14ms","method":"POST","requestID":"d8bc7a40-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:42.989899800Z"}]},"request_id":"29f9044e-00b2-47bc-90ea-362a617769ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.2990377} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"89e760ac-5ca4-4d78-8e1f-36c6363158d5"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"b4aa63f0-168a-49f8-8a99-39bdd7928317"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d18ba28e-868d-40ae-88b8-584f8ccda6dc"}]},"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/c910b53c-f6e1-4e8b-9544-c480de2ec98b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a3df215e5cccc2eb88a4404030068a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900? 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":"2a3df215e5cccc2eb88a4404030068a8"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} device-1 | {"level":"info","message":"GET /devices/d6a77125-e277-4d42-a1f9-1e75ddc59900? 200 14ms","method":"GET","requestID":"2a3df215e5cccc2eb88a4404030068a8","responseTime":14,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.888287,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"d8bf3960-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6470906aa442ae385fabef78f960c1f0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887291,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383245,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0NX0.r1RXfw1Cn22U3TWfElnz7MW18b-Hpm-jVuakg4xmAbw"} 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":"6470906aa442ae385fabef78f960c1f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"12c290c1-211b-40eb-8432-ac1c241573c4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.3151567} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"485a0ecd-344e-407f-98c9-8ad4534f713c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.3152778} 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":"d8bf3960-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:43.038974901Z"}]},"request_id":"ccb659a2-d6f3-4cbd-86fb-a7320e9e8c78","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.319742} 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":"6470906aa442ae385fabef78f960c1f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309'"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 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":"6470906aa442ae385fabef78f960c1f0"} device-1 | {"level":"info","message":"GET /devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b? 200 22ms","method":"GET","requestID":"6470906aa442ae385fabef78f960c1f0","responseTime":22,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b?"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309'"} 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 33ms","method":"POST","requestID":"d8bf3960-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"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/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92def033-5db2-4dc4-b6bc-365b3ff86a5a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.3669932} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.198281,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","rebac_allow":false,"scope_allow":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":"d8c86120-2a6c-11ef-91df-9f2f583abbec"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling 200 9ms","method":"POST","requestID":"d8c86120-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8731c565-8243-4a8a-a68a-d19f98b207c5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383245.378275} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.042118,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","rebac_allow":false,"scope_allow":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":"d8ca0ed0-2a6c-11ef-91df-9f2f583abbec"},"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/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling 200 9ms","method":"POST","requestID":"d8ca0ed0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","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/04e963b6-1c05-46b8-8e77-c2cd57ab2309' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","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":"81210ec047e17f59fd3b84efadbeb0d8","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b'"} 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/c910b53c-f6e1-4e8b-9544-c480de2ec98b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"81210ec047e17f59fd3b84efadbeb0d8","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"81210ec047e17f59fd3b84efadbeb0d8"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","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/04e963b6-1c05-46b8-8e77-c2cd57ab2309' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","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":"1515c89d0a0eb52971825234b99905d1","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/c910b53c-f6e1-4e8b-9544-c480de2ec98b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04e963b6-1c05-46b8-8e77-c2cd57ab2309","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c81422d0-1353-4979-9bb3-053cc09f4823","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383247.7139513} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.426712,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da2e0ba0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309 200 48ms","method":"GET","requestID":"da2e0ba0-2a6c-11ef-91df-9f2f583abbec","responseTime":48,"status":200,"url":"/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 179ms","method":"POST","requestID":"1515c89d0a0eb52971825234b99905d1","responseTime":179,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"1515c89d0a0eb52971825234b99905d1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"947aee01-252b-46dc-b6bc-6fb2baf8f9e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383247.882699} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.643448,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","rebac_allow":false,"scope_allow":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":"da47fc40-2a6c-11ef-91df-9f2f583abbec"},"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/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling 200 15ms","method":"POST","requestID":"da47fc40-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f014773c-325f-405b-b6da-80916ceb3a31","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383247.902026} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.519725,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","rebac_allow":false,"scope_allow":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":"da4abb60-2a6c-11ef-91df-9f2f583abbec"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling 200 16ms","method":"POST","requestID":"da4abb60-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bdb26ea3437036f0b7026d8ef3fefe18","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.451737,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383248,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g"} 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":"bdb26ea3437036f0b7026d8ef3fefe18"},"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/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} experiment-1 | {"level":"info","message":"GET /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7 200 19ms","method":"GET","requestID":"bdb26ea3437036f0b7026d8ef3fefe18","responseTime":19,"status":200,"url":"/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bdb26ea3437036f0b7026d8ef3fefe18"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d2f5575fce2c26d2b04f9fd0ba868505","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.330633,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383248,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g"} 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":"d2f5575fce2c26d2b04f9fd0ba868505"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.494141,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383248,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g"} 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":"da64d310-2a6c-11ef-91df-9f2f583abbec"},"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/04e963b6-1c05-46b8-8e77-c2cd57ab2309' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04e963b6-1c05-46b8-8e77-c2cd57ab2309': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04e963b6-1c05-46b8-8e77-c2cd57ab2309","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"0dd1106d-8fa0-420e-ba27-6c227a322316","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.09494} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b2ecf1ad55941556679e15d4a36ac8cf","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a6782d1-9361-4872-aeb8-9ff885d08259","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.0953665} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c589d3f970aacf69601c7989936e7d82","responseTime":1,"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":"da64d310-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"04e963b6-1c05-46b8-8e77-c2cd57ab2309","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/04e963b6-1c05-46b8-8e77-c2cd57ab2309 204 64ms","method":"DELETE","requestID":"da64d310-2a6c-11ef-91df-9f2f583abbec","responseTime":64,"status":204,"url":"/peerconnections/04e963b6-1c05-46b8-8e77-c2cd57ab2309"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc910b53c-f6e1-4e8b-9544-c480de2ec98b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5de7993e-6147-4b89-a287-13dda38043d5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.1650803} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.260763,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b","object_type":"device","rebac_allow":false,"scope_allow":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":"da72dcd0-2a6c-11ef-91df-9f2f583abbec"},"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/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling 200 16ms","method":"POST","requestID":"da72dcd0-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F43ccdfdd-a9b7-4ce0-9804-08014448a3b7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F43ccdfdd-a9b7-4ce0-9804-08014448a3b7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"ddf9b15c-bac9-42b2-9093-74b5d10d13c9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.174801} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d90b2d2-31b1-43ea-a8dd-c2f194283351","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.175467} 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":"d2f5575fce2c26d2b04f9fd0ba868505"},"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:57580","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd6a77125-e277-4d42-a1f9-1e75ddc59900","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8b51f8df-79cc-40c9-a4b0-95edefffa14d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.1878116} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.272371,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900","object_type":"device","rebac_allow":false,"scope_allow":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":"da75ea10-2a6c-11ef-91df-9f2f583abbec"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling 200 18ms","method":"POST","requestID":"da75ea10-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/d6a77125-e277-4d42-a1f9-1e75ddc59900/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7 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":"d2f5575fce2c26d2b04f9fd0ba868505"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2598","request_time":"4.651","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"96c7bbe1d3d189f5c5a37b4d804beea5"} experiment-1 | {"level":"info","message":"DELETE /experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7 204 198ms","method":"DELETE","requestID":"d2f5575fce2c26d2b04f9fd0ba868505","responseTime":198,"status":204,"url":"/experiments/43ccdfdd-a9b7-4ce0-9804-08014448a3b7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"b2ecf1ad55941556679e15d4a36ac8cf","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"b2ecf1ad55941556679e15d4a36ac8cf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 152ms","method":"POST","requestID":"c589d3f970aacf69601c7989936e7d82","responseTime":152,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"c589d3f970aacf69601c7989936e7d82"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"122ef4e318a02530ebf6eaf3e0b2f001","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"3.178","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b80ff4485bba7990616ec93f4f9be19d"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.930863,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383248,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g"} 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":"122ef4e318a02530ebf6eaf3e0b2f001"},"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/d6a77125-e277-4d42-a1f9-1e75ddc59900' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"857de9ac-a770-4374-be9b-ab10d780b9d4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.279159} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"122ef4e318a02530ebf6eaf3e0b2f001"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c910b53c-f6e1-4e8b-9544-c480de2ec98b' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b773684-fdaf-4425-9736-2cfe297a8d0d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.2863545} 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":"122ef4e318a02530ebf6eaf3e0b2f001"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d0670e29-1d41-4a9e-8f3e-c124ead5819e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.2982912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"821b6362-bd20-4042-8519-0ac9660bdb9d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.2984045} 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":"122ef4e318a02530ebf6eaf3e0b2f001"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.298267710Z"}]},"request_id":"85c2b4f8-9f8f-428b-a563-2c70b362830b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.3041055} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"122ef4e318a02530ebf6eaf3e0b2f001"},"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":"14/Jun/2024:16:40:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"122ef4e318a02530ebf6eaf3e0b2f001"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"122ef4e318a02530ebf6eaf3e0b2f001","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8ce49fc7c59eb802c7ee84ee66502a93","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.927626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383248,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI0OH0.dGIZQITdZvAi6t0FTDWoiRUAplWPR_u2EIOLcsn9w6g"} 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":"8ce49fc7c59eb802c7ee84ee66502a93"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"68bb6848-660b-4cc4-be24-02ae82fc9974","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.332829} 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":"8ce49fc7c59eb802c7ee84ee66502a93"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6ddd719-5ce9-4349-ada0-c818cf1336cd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.3378963} 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":"8ce49fc7c59eb802c7ee84ee66502a93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"3694bb7f-740c-4143-a6e6-7ad013f95f96","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.3479066} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b212210-4488-4ba1-a793-31fa49d908a4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.3480773} 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":"8ce49fc7c59eb802c7ee84ee66502a93"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.347884344Z"}]},"request_id":"812de930-0541-4872-beea-3ba6ec8f54f5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383248.3523452} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8ce49fc7c59eb802c7ee84ee66502a93"},"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":"14/Jun/2024:16:40:48 +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":"8ce49fc7c59eb802c7ee84ee66502a93"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"8ce49fc7c59eb802c7ee84ee66502a93","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":"6f6b6598c4cfe41952a7213294fbee99","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/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":"6f6b6598c4cfe41952a7213294fbee99"} device-1 | {"level":"info","message":"OPTIONS /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/websocket 200 1ms","method":"OPTIONS","requestID":"6f6b6598c4cfe41952a7213294fbee99","responseTime":1,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/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":"3126427f3034aafb121c3e966171f014","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/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":"3126427f3034aafb121c3e966171f014"} device-1 | {"level":"info","message":"OPTIONS /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/websocket 200 1ms","method":"OPTIONS","requestID":"3126427f3034aafb121c3e966171f014","responseTime":1,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"36c0f4c0817bb520851d1b9202b16fd7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7d3fa95e25cdd52401799214b0c17ae3","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.26211,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"36c0f4c0817bb520851d1b9202b16fd7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.939529,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"7d3fa95e25cdd52401799214b0c17ae3"},"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":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.035","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"36c0f4c0817bb520851d1b9202b16fd7"} device-1 | {"level":"info","message":"POST /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/websocket 200 26ms","method":"POST","requestID":"36c0f4c0817bb520851d1b9202b16fd7","responseTime":26,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/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":"7d3fa95e25cdd52401799214b0c17ae3"} device-1 | {"level":"info","message":"POST /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/websocket 200 34ms","method":"POST","requestID":"7d3fa95e25cdd52401799214b0c17ae3","responseTime":34,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2dadcaf6bc48fe6645464c5769339426","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.827156,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"2dadcaf6bc48fe6645464c5769339426"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.298267710Z"}]},"request_id":"07b62886-b6c9-488f-9892-19d17796d842","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.4223309} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2dadcaf6bc48fe6645464c5769339426"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce? 200 18ms","method":"GET","requestID":"2dadcaf6bc48fe6645464c5769339426","responseTime":18,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/89c119f9-ec73-4677-9fde-0ce76068cdce? 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":"2dadcaf6bc48fe6645464c5769339426"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9baaf6a09c84104583aca2322e202c62","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661783,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"9baaf6a09c84104583aca2322e202c62"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.347884344Z"}]},"request_id":"32147ddb-cd61-4c9f-aef3-edfe6ca5aea2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.4484143} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9baaf6a09c84104583aca2322e202c62"},"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":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 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":"9baaf6a09c84104583aca2322e202c62"} device-1 | {"level":"info","message":"GET /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 200 18ms","method":"GET","requestID":"9baaf6a09c84104583aca2322e202c62","responseTime":18,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fb418c03669c5d5281ba6225214fb24d","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:57580","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.268248,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"fb418c03669c5d5281ba6225214fb24d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"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:57580","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634097,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"dbd88750-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794597,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"dbd8fc80-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.298267710Z"}]},"request_id":"c9bbad5a-3d72-4c4d-9dac-0e1b57a51e4c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.5141397} 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":"dbd88750-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.347884344Z"}]},"request_id":"e07a08ad-5610-43ad-9769-b5ac9e23763e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.5203266} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/89c119f9-ec73-4677-9fde-0ce76068cdce? 200 21ms","method":"GET","requestID":"dbd88750-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbd8fc80-2a6c-11ef-91df-9f2f583abbec"},"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/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 200 21ms","method":"GET","requestID":"dbd8fc80-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"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/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.035028,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"dbe53180-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.24177,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"dbe57fa0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:48434","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48434","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.174483,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cb540d3-ce52-40c3-a88d-2a0a19e9c6d0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6030774} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.298267710Z"}]},"request_id":"0f5af8b4-d3d0-409a-b063-9ca4d5537b3f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.60332} 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":"dbe53180-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbe5cdc0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.347884344Z"}]},"request_id":"ffa53032-14ba-4518-aa58-d7999dca4a5a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.605855} 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":"dbe57fa0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0232edc3-e837-478e-b7e4-f1796cf1a6e6#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0232edc3-e837-478e-b7e4-f1796cf1a6e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"95837c48-6a8d-4a55-94d9-b59b73596f4e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6160347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fd711d21-6ffe-4289-ac09-a260c9ffd552","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6163955} 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":"fb418c03669c5d5281ba6225214fb24d"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce? 200 35ms","method":"GET","requestID":"dbe53180-2a6c-11ef-91df-9f2f583abbec","responseTime":35,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling 200 33ms","method":"POST","requestID":"dbe5cdc0-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 200 35ms","method":"GET","requestID":"dbe57fa0-2a6c-11ef-91df-9f2f583abbec","responseTime":35,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"660ba91f-a508-4585-883d-23fd78b35822","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6320946} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fb418c03669c5d5281ba6225214fb24d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 170ms","method":"POST","requestID":"fb418c03669c5d5281ba6225214fb24d","responseTime":170,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.251815,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","rebac_allow":false,"scope_allow":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":"dbeb7310-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c0291fa-89e3-4c2c-82f9-fb62e5b96fdb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6359456} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.938574,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"dbec3660-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"027a622449e5af83f6d37c0a1aca1d52","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling 200 13ms","method":"POST","requestID":"dbeb7310-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling 200 13ms","method":"POST","requestID":"dbec3660-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.184934,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"027a622449e5af83f6d37c0a1aca1d52"},"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:57580","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.298267710Z"}]},"request_id":"ebd21b31-d50a-4839-b24b-7bb757860ccf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.650886} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd0943fd-c4ec-46fd-a400-4dd347c279d2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6508958} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"027a622449e5af83f6d37c0a1aca1d52"},"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:57580","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.294821,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","rebac_allow":false,"scope_allow":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":"dbeea760-2a6c-11ef-91df-9f2f583abbec"},"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":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/89c119f9-ec73-4677-9fde-0ce76068cdce? 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":"027a622449e5af83f6d37c0a1aca1d52"} device-1 | {"level":"info","message":"GET /devices/89c119f9-ec73-4677-9fde-0ce76068cdce? 200 18ms","method":"GET","requestID":"027a622449e5af83f6d37c0a1aca1d52","responseTime":18,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling 200 12ms","method":"POST","requestID":"dbeea760-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"faa0497b-1fc0-438d-81bf-0938ae2ddc13"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"c5fb86f8-250d-4175-b84c-d770837fecb3"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"e28527ef-cc35-4dcc-bc12-04ee2192d9bf"}]},"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/89c119f9-ec73-4677-9fde-0ce76068cdce"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o","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":"e042e89bbed4cead2cbf68ac0a35ef55","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.813097,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"dbf11860-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.940378,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383250,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MH0.zjNCLVJeC4YW1KLlASEetsKJ45argcX0NpbIJF2hU2o"} 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":"e042e89bbed4cead2cbf68ac0a35ef55"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:48.347884344Z"}]},"request_id":"03f61a1d-8cf4-4cce-a3cc-1a59ade2b927","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.6763725} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e042e89bbed4cead2cbf68ac0a35ef55"},"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":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 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":"e042e89bbed4cead2cbf68ac0a35ef55"} device-1 | {"level":"info","message":"GET /devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22? 200 16ms","method":"GET","requestID":"e042e89bbed4cead2cbf68ac0a35ef55","responseTime":16,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"44e8a5d8-b19b-40ab-8855-2d7a82e7e370","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.681135} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"962f6f8b-0a32-48b7-9d26-db115495faf8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.682511} 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":"dbf11860-2a6c-11ef-91df-9f2f583abbec"},"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/bfe91f0b-fb0d-428f-a47d-f4866a94307d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d'"} 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":"dbf11860-2a6c-11ef-91df-9f2f583abbec","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"894cf90a-22f9-4765-a6ee-4b2c8564652a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.7291722} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.613705,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","rebac_allow":false,"scope_allow":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":"dbfa8e40-2a6c-11ef-91df-9f2f583abbec"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling 200 9ms","method":"POST","requestID":"dbfa8e40-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b267939b-6913-4e74-b441-51d3d3dd8d55","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.7411783} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.742114,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"dbfc6300-2a6c-11ef-91df-9f2f583abbec"},"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/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling 200 13ms","method":"POST","requestID":"dbfc6300-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6386165c0305992c07c2a3b051be5180","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":"new","url":"http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"6386165c0305992c07c2a3b051be5180","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"6386165c0305992c07c2a3b051be5180"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","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/bfe91f0b-fb0d-428f-a47d-f4866a94307d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","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":"ecf73f48c80821632ed3f80f87947763","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/89c119f9-ec73-4677-9fde-0ce76068cdce"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfe91f0b-fb0d-428f-a47d-f4866a94307d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7effa3ea-17d4-4f6e-853f-7720a124e087","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.828754} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.717751,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d","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":"dc09a970-2a6c-11ef-91df-9f2f583abbec"},"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/bfe91f0b-fb0d-428f-a47d-f4866a94307d 200 10ms","method":"GET","requestID":"dc09a970-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"ecf73f48c80821632ed3f80f87947763","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch","requestID":"ecf73f48c80821632ed3f80f87947763"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e32b6080-9d66-4556-baef-d41b721d9dbc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.8596976} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.589343,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"dc0e6460-2a6c-11ef-91df-9f2f583abbec"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling 200 11ms","method":"POST","requestID":"dc0e6460-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e534a1da-c19e-49dc-a16f-3b2ff366767b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383250.872517} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.534178,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"dc106030-2a6c-11ef-91df-9f2f583abbec"},"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/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling 200 10ms","method":"POST","requestID":"dc106030-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"283cc79f21dc100a7c2c124c0430f440","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.259766,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383251,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no"} 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":"283cc79f21dc100a7c2c124c0430f440"},"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/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6 HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"283cc79f21dc100a7c2c124c0430f440"} experiment-1 | {"level":"info","message":"GET /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6 200 17ms","method":"GET","requestID":"283cc79f21dc100a7c2c124c0430f440","responseTime":17,"status":200,"url":"/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ef1d0c6ed88ec3b2dcb3b229430e201e","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.224348,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383251,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no"} 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":"ef1d0c6ed88ec3b2dcb3b229430e201e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.253606,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383251,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no"} 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":"dc901780-2a6c-11ef-91df-9f2f583abbec"},"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/bfe91f0b-fb0d-428f-a47d-f4866a94307d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfe91f0b-fb0d-428f-a47d-f4866a94307d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfe91f0b-fb0d-428f-a47d-f4866a94307d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"66ccfc83-fb5d-4178-943c-868056cc8c34","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.7312253} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"521012c8-ae10-4563-aa6f-cbc8dbe79a18","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.7319427} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b5f7fa0f0301676f29c3f4749b511f9a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc901780-2a6c-11ef-91df-9f2f583abbec"},"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":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"}}},"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":"a27bfe689d3466db27813303a09523b6","responseTime":2,"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/89c119f9-ec73-4677-9fde-0ce76068cdce"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"bfe91f0b-fb0d-428f-a47d-f4866a94307d","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/bfe91f0b-fb0d-428f-a47d-f4866a94307d 204 52ms","method":"DELETE","requestID":"dc901780-2a6c-11ef-91df-9f2f583abbec","responseTime":52,"status":204,"url":"/peerconnections/bfe91f0b-fb0d-428f-a47d-f4866a94307d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F89c119f9-ec73-4677-9fde-0ce76068cdce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6e7760d7-2c68-43fc-84ac-c587f1146f94","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.7921426} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.05627,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/89c119f9-ec73-4677-9fde-0ce76068cdce","object_type":"device","rebac_allow":false,"scope_allow":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":"dc9bfe60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0232edc3-e837-478e-b7e4-f1796cf1a6e6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0232edc3-e837-478e-b7e4-f1796cf1a6e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"52ff466d-793a-41cb-bf16-38165ada1b1b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.794753} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c87c7a8b-5786-4c9c-b01b-8bbcb0697dfd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.7953222} 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":"ef1d0c6ed88ec3b2dcb3b229430e201e"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling 200 19ms","method":"POST","requestID":"dc9bfe60-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/89c119f9-ec73-4677-9fde-0ce76068cdce/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08605948-9ea7-4d43-a4a3-d9a7bc492f22","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"098d5574-22b8-4be8-953f-2475a447cbc1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.8127573} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.856643,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22","object_type":"device","rebac_allow":false,"scope_allow":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":"dc9f80d0-2a6c-11ef-91df-9f2f583abbec"},"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/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling 200 15ms","method":"POST","requestID":"dc9f80d0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6 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":"ef1d0c6ed88ec3b2dcb3b229430e201e"} experiment-1 | {"level":"info","message":"DELETE /experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6 204 186ms","method":"DELETE","requestID":"ef1d0c6ed88ec3b2dcb3b229430e201e","responseTime":186,"status":204,"url":"/experiments/0232edc3-e837-478e-b7e4-f1796cf1a6e6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"b5f7fa0f0301676f29c3f4749b511f9a","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"b5f7fa0f0301676f29c3f4749b511f9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6659a45f09d9bd4e8ff8e2e8e2eba92c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"a27bfe689d3466db27813303a09523b6","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"a27bfe689d3466db27813303a09523b6"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2631","request_time":"1.497","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e870a620797feb0e1c706acd16c3f91a"} gateway-1 | {"time_local":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2631","request_time":"1.510","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70e0e6b7c1513317ee72686a0b987702"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.850607,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383251,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no"} 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":"6659a45f09d9bd4e8ff8e2e8e2eba92c"},"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/89c119f9-ec73-4677-9fde-0ce76068cdce' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/08605948-9ea7-4d43-a4a3-d9a7bc492f22' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"24a4a29c-ebba-4215-8167-ee1b713cafef","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.906304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6659a45f09d9bd4e8ff8e2e8e2eba92c"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"359f1052-4cd5-4a96-a851-2231508aa484","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9121304} 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":"6659a45f09d9bd4e8ff8e2e8e2eba92c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"83c3e7d1-64ee-47b6-bf41-7d0149d3a419","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9234166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1539db83-366d-4ede-8ec2-3b68aedd6d82","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9234943} 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":"6659a45f09d9bd4e8ff8e2e8e2eba92c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.923401091Z"}]},"request_id":"79856edd-be4d-46d1-89e0-7f9983a1314c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9287229} 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":"6659a45f09d9bd4e8ff8e2e8e2eba92c"},"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":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6659a45f09d9bd4e8ff8e2e8e2eba92c"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"6659a45f09d9bd4e8ff8e2e8e2eba92c","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"15142d56610279c89c6b8322e5597f33","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.860886,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383251,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1MX0.io1T6qcbNf2_mNxUfGQaRxSsW3n89AaR0wfgkc093no"} 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":"15142d56610279c89c6b8322e5597f33"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7cd74893-c4d2-498d-9258-17413b150e93","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9553132} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"15142d56610279c89c6b8322e5597f33"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff5db46b-61a4-47d9-a540-307133158182","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9615798} 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":"15142d56610279c89c6b8322e5597f33"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"81620488-9eee-4de8-bfd3-853e3ac16698","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.9734972} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cfda3455-90ef-4e8f-bfab-39b384917d46","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.973712} 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":"15142d56610279c89c6b8322e5597f33"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"a5c66e5d-cd15-4573-a70e-2f5f9e30406d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383251.97983} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"15142d56610279c89c6b8322e5597f33"},"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":"14/Jun/2024:16:40:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15142d56610279c89c6b8322e5597f33"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"15142d56610279c89c6b8322e5597f33","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Mn0.qdCsZVsYrqtpie2sbZAATozpF1MXAvrw5VHkwzTKBZI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d701c9142ea20094de53806364d6de24","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654614,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383252,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Mn0.qdCsZVsYrqtpie2sbZAATozpF1MXAvrw5VHkwzTKBZI"} 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":"d701c9142ea20094de53806364d6de24"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"f12c146c-9d07-48e1-ae65-56dac8adc5b3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383252.479108} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d701c9142ea20094de53806364d6de24"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a7cde44-1f99-411b-a2d3-c0717f9b0be2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383252.486204} 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":"d701c9142ea20094de53806364d6de24"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"ecdf7d59-c0bd-4ec9-bdb6-90aefbcfa0b6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383252.5004513} 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":"d701c9142ea20094de53806364d6de24"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f64e8378-967a-439b-801c-cba9dfb76c6e HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d701c9142ea20094de53806364d6de24"} device-1 | {"level":"info","message":"PATCH /devices/f64e8378-967a-439b-801c-cba9dfb76c6e 200 38ms","method":"PATCH","requestID":"d701c9142ea20094de53806364d6de24","responseTime":38,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Mn0.qdCsZVsYrqtpie2sbZAATozpF1MXAvrw5VHkwzTKBZI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9a8f745dcd72f5e9656adb78fbf3f86d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.965894,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383252,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Mn0.qdCsZVsYrqtpie2sbZAATozpF1MXAvrw5VHkwzTKBZI"} 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":"9a8f745dcd72f5e9656adb78fbf3f86d"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/websocket 200 19ms","method":"POST","requestID":"9a8f745dcd72f5e9656adb78fbf3f86d","responseTime":19,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:40:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f64e8378-967a-439b-801c-cba9dfb76c6e/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":"9a8f745dcd72f5e9656adb78fbf3f86d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e' 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":"056cbd1058c3c0ed193888953cf80345","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8175f841-9633-436d-bd81-b63d5bb827a4/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":"056cbd1058c3c0ed193888953cf80345"} device-1 | {"level":"info","message":"OPTIONS /devices/8175f841-9633-436d-bd81-b63d5bb827a4/websocket 200 1ms","method":"OPTIONS","requestID":"056cbd1058c3c0ed193888953cf80345","responseTime":1,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1M30.pgfQbxSjG8UsXrd9Emy9h-suRA-_aO05jkf7U59aISo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0e672daf87101b59dad9a2e901dd5c46","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:53Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.251582,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383253,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1M30.pgfQbxSjG8UsXrd9Emy9h-suRA-_aO05jkf7U59aISo"} 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":"0e672daf87101b59dad9a2e901dd5c46"},"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/8175f841-9633-436d-bd81-b63d5bb827a4/websocket 200 24ms","method":"POST","requestID":"0e672daf87101b59dad9a2e901dd5c46","responseTime":24,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8175f841-9633-436d-bd81-b63d5bb827a4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0e672daf87101b59dad9a2e901dd5c46"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b3604cd009102fb2219638ac6dd4882a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.232018,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"b3604cd009102fb2219638ac6dd4882a"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.923401091Z"}]},"request_id":"35453839-0385-4f35-b2ae-e6a3443d8d42","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.0464902} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b3604cd009102fb2219638ac6dd4882a"},"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":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8175f841-9633-436d-bd81-b63d5bb827a4? 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":"b3604cd009102fb2219638ac6dd4882a"} device-1 | {"level":"info","message":"GET /devices/8175f841-9633-436d-bd81-b63d5bb827a4? 200 18ms","method":"GET","requestID":"b3604cd009102fb2219638ac6dd4882a","responseTime":18,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c8a7afbf8f40a5818c6bb614942b4b59","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.223073,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"c8a7afbf8f40a5818c6bb614942b4b59"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"21d8b2be-16f4-4ff9-8d27-c72b3d89458d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.0717533} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8a7afbf8f40a5818c6bb614942b4b59"},"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":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8a7afbf8f40a5818c6bb614942b4b59"} device-1 | {"level":"info","message":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? 200 18ms","method":"GET","requestID":"c8a7afbf8f40a5818c6bb614942b4b59","responseTime":18,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5b64ae454404c41a9edbc40d61a64ecd","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:57580","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.209194,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"5b64ae454404c41a9edbc40d61a64ecd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"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:57580","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65584,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"de01f700-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650478,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"de024520-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.923401091Z"}]},"request_id":"d26d7860-47a7-4f15-95b3-1c3c7b365f38","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.136647} 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":"de01f700-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"56be7db6-b150-4eef-ad67-8a799e922182","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.1372738} 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":"de024520-2a6c-11ef-91df-9f2f583abbec"},"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/8175f841-9633-436d-bd81-b63d5bb827a4? 200 16ms","method":"GET","requestID":"de01f700-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? 200 15ms","method":"GET","requestID":"de024520-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"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:57580","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.464438,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully running experiment"} 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":"de0d68b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.334079,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48434","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"de0db6d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:48434","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.092324,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc5cdb73-96f4-4856-a0cf-7c78ade12c6e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2211444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.923401091Z"}]},"request_id":"74da78b6-3b61-45d8-b171-c0692bc6f300","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2221742} 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":"de0d68b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de0e2c00-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"66bc031f-fbed-4dc2-9a28-db4ac56c1e45","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2276518} 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":"de0db6d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8175f841-9633-436d-bd81-b63d5bb827a4? 200 35ms","method":"GET","requestID":"de0d68b0-2a6c-11ef-91df-9f2f583abbec","responseTime":35,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling 200 32ms","method":"POST","requestID":"de0e2c00-2a6c-11ef-91df-9f2f583abbec","responseTime":32,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? 200 37ms","method":"GET","requestID":"de0db6d0-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe2738f0-f8fa-4289-9ad0-b47656e34270#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe2738f0-f8fa-4289-9ad0-b47656e34270","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"f20f123c-1f66-47d2-ba5e-333a20ed90ad","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2496808} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"16f804a6-253f-4102-a9f4-73e0e59f398b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.25007} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b64ae454404c41a9edbc40d61a64ecd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":36}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.006033,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.217558,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce8f265d-3062-4d8c-95ac-92fa7e3d0382","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2543523} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b8f7658f-8ced-436d-ad85-be73d5c89e40","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2562609} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","rebac_allow":false,"scope_allow":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":"de13aa40-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","rebac_allow":false,"scope_allow":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":"de13f860-2a6c-11ef-91df-9f2f583abbec"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling 200 22ms","method":"POST","requestID":"de13aa40-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling 200 22ms","method":"POST","requestID":"de13f860-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b64ae454404c41a9edbc40d61a64ecd"} experiment-1 | {"level":"info","message":"POST /experiments? 201 183ms","method":"POST","requestID":"5b64ae454404c41a9edbc40d61a64ecd","responseTime":183,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0fe8cf79ccec976a546f2a901dea36f7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f93cd31-9c09-4c06-912f-c9ce35a93fe2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.2814195} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.245732,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","rebac_allow":false,"scope_allow":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":"de186530-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:48424","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.829678,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"0fe8cf79ccec976a546f2a901dea36f7"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling 200 15ms","method":"POST","requestID":"de186530-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"509ee47e-47b8-438d-92cf-9aa011e85c01"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"c2a2540c-e171-47f7-baab-22c442b3c1bb"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"f2a3fa95-cc4b-43dc-ae0e-55c15c8ab5f1"}]},"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/8175f841-9633-436d-bd81-b63d5bb827a4"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.923401091Z"}]},"request_id":"27d75d1c-1916-4d29-bd8c-9c7f50c25fa6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.293029} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0fe8cf79ccec976a546f2a901dea36f7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.148377,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8175f841-9633-436d-bd81-b63d5bb827a4? 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":"0fe8cf79ccec976a546f2a901dea36f7"} device-1 | {"level":"info","message":"GET /devices/8175f841-9633-436d-bd81-b63d5bb827a4? 200 21ms","method":"GET","requestID":"0fe8cf79ccec976a546f2a901dea36f7","responseTime":21,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"de1b4b60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"61c87158bce146c70641cd20c1e91d25","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"f679d350-7058-4fcb-a8ab-3adaa5df7bdf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.3104556} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc90b08f-295b-4ce5-93ad-6e91ef60e27d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.3106859} 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":"de1b4b60-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.892721,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383254,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1NH0.mUW-4l0ozShdCmbIgjlN5FIKadOh8TUyd5FigybCIO0"} 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":"61c87158bce146c70641cd20c1e91d25"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:51.973472661Z"}]},"request_id":"70627b37-10b0-4a4c-9e2b-0a1526a72269","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.3192496} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61c87158bce146c70641cd20c1e91d25"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32'"} 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":"de1b4b60-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"61c87158bce146c70641cd20c1e91d25"} device-1 | {"level":"info","message":"GET /devices/f64e8378-967a-439b-801c-cba9dfb76c6e? 200 25ms","method":"GET","requestID":"61c87158bce146c70641cd20c1e91d25","responseTime":25,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48b89cb1-d9ec-4000-a292-582ce199f79b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.3635752} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.146641,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"de253670-2a6c-11ef-91df-9f2f583abbec"},"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/8175f841-9633-436d-bd81-b63d5bb827a4/signaling 200 8ms","method":"POST","requestID":"de253670-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73c8f873-76a7-43ed-b5b7-e499a0f827a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383254.375329} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.769109,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"de26e420-2a6c-11ef-91df-9f2f583abbec"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling 200 11ms","method":"POST","requestID":"de26e420-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","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/1161c094-c29c-4f61-b8c2-c0c22f70ff32' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d0eec10c39ce6fbda6fb2e187ec9c49f","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":"new","url":"http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"d0eec10c39ce6fbda6fb2e187ec9c49f","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"d0eec10c39ce6fbda6fb2e187ec9c49f"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","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/1161c094-c29c-4f61-b8c2-c0c22f70ff32' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","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":"2de67643029778462095439bca2ccf5e","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/8175f841-9633-436d-bd81-b63d5bb827a4"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1161c094-c29c-4f61-b8c2-c0c22f70ff32","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d534c60-9f30-4c63-88e6-0ea73aa386bc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.4583247} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.312076,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32","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":"df649440-2a6c-11ef-91df-9f2f583abbec"},"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/1161c094-c29c-4f61-b8c2-c0c22f70ff32 200 10ms","method":"GET","requestID":"df649440-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"2de67643029778462095439bca2ccf5e","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"2de67643029778462095439bca2ccf5e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b56c93d2-d282-4696-8c04-fecf95a1a1d2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.493039} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.582302,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"df6a1280-2a6c-11ef-91df-9f2f583abbec"},"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/8175f841-9633-436d-bd81-b63d5bb827a4/signaling 200 10ms","method":"POST","requestID":"df6a1280-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecbcf1a1-1c3e-4dc3-86b9-c19a463505ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.5050313} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.017429,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"df6be740-2a6c-11ef-91df-9f2f583abbec"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling 200 9ms","method":"POST","requestID":"df6be740-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e00e669da73a8df09ab04d90860668dd","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.206096,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383256,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI"} 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":"e00e669da73a8df09ab04d90860668dd"},"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/fe2738f0-f8fa-4289-9ad0-b47656e34270"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e00e669da73a8df09ab04d90860668dd"} experiment-1 | {"level":"info","message":"GET /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270 200 16ms","method":"GET","requestID":"e00e669da73a8df09ab04d90860668dd","responseTime":16,"status":200,"url":"/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5ca1bfeb75b7f0c6cffa7b7aa7005f98","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.161176,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383256,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI"} 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":"5ca1bfeb75b7f0c6cffa7b7aa7005f98"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.231818,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383256,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI"} 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":"df936c70-2a6c-11ef-91df-9f2f583abbec"},"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/1161c094-c29c-4f61-b8c2-c0c22f70ff32' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8e7cc93133cfd443a6494b73b7260dc9","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1161c094-c29c-4f61-b8c2-c0c22f70ff32': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1161c094-c29c-4f61-b8c2-c0c22f70ff32","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"cdd3e404-9206-466c-a3a9-272f365c81fd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.7843852} 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/8175f841-9633-436d-bd81-b63d5bb827a4"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"}}},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f6c9e9a3-36bf-4bc9-9f02-ebe158038e86","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.7846668} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4dd0f56cd9ad884af1e71db5aeb222ce","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/8175f841-9633-436d-bd81-b63d5bb827a4"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df936c70-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"1161c094-c29c-4f61-b8c2-c0c22f70ff32","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/1161c094-c29c-4f61-b8c2-c0c22f70ff32 204 48ms","method":"DELETE","requestID":"df936c70-2a6c-11ef-91df-9f2f583abbec","responseTime":48,"status":204,"url":"/peerconnections/1161c094-c29c-4f61-b8c2-c0c22f70ff32"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8175f841-9633-436d-bd81-b63d5bb827a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"614fbdaf-f37c-4a7b-87fa-c47401b1806f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.8405912} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.810959,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8175f841-9633-436d-bd81-b63d5bb827a4","object_type":"device","rebac_allow":false,"scope_allow":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":"df9eb710-2a6c-11ef-91df-9f2f583abbec"},"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/8175f841-9633-436d-bd81-b63d5bb827a4/signaling 200 15ms","method":"POST","requestID":"df9eb710-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/8175f841-9633-436d-bd81-b63d5bb827a4/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe2738f0-f8fa-4289-9ad0-b47656e34270': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffe2738f0-f8fa-4289-9ad0-b47656e34270","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"5cb46467-0e3b-4b32-857b-21cefde96db0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.8478942} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99be3df1-2874-4c64-b769-6149b7cfa21a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.8483102} 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":"5ca1bfeb75b7f0c6cffa7b7aa7005f98"},"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:57580","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff64e8378-967a-439b-801c-cba9dfb76c6e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73c2abb4-ff40-4f0a-959f-ec804d6aefd3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.8570552} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.031282,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f64e8378-967a-439b-801c-cba9dfb76c6e","object_type":"device","rebac_allow":false,"scope_allow":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":"dfa17630-2a6c-11ef-91df-9f2f583abbec"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling 200 11ms","method":"POST","requestID":"dfa17630-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/f64e8378-967a-439b-801c-cba9dfb76c6e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270 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":"5ca1bfeb75b7f0c6cffa7b7aa7005f98"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2580","request_time":"4.382","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cd1f7184866174af753f4e895ea6688b"} experiment-1 | {"level":"info","message":"DELETE /experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270 204 174ms","method":"DELETE","requestID":"5ca1bfeb75b7f0c6cffa7b7aa7005f98","responseTime":174,"status":204,"url":"/experiments/fe2738f0-f8fa-4289-9ad0-b47656e34270"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"8e7cc93133cfd443a6494b73b7260dc9","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e7cc93133cfd443a6494b73b7260dc9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"4dd0f56cd9ad884af1e71db5aeb222ce","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"4dd0f56cd9ad884af1e71db5aeb222ce"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"35fe07fe3f873fac6f320542ae7a6d5c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.919","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e519fb079dd5a9a80081b491ce5e1674"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.987036,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383256,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI"} 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":"35fe07fe3f873fac6f320542ae7a6d5c"},"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/f64e8378-967a-439b-801c-cba9dfb76c6e' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f32f11db-8b10-45a1-901d-7c59726e10ce","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.9542954} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35fe07fe3f873fac6f320542ae7a6d5c"},"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/8175f841-9633-436d-bd81-b63d5bb827a4' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d4e1a56-6cc2-4214-81a7-024835cf95cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.9601383} 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":"35fe07fe3f873fac6f320542ae7a6d5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"523450a3-008d-47c1-862e-66c672c93955","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.9697912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f4120ae-ed55-49d3-b147-902ce1054319","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.9699237} 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":"35fe07fe3f873fac6f320542ae7a6d5c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"12af4ffe-a4cc-4331-96b4-eb478edc53b9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383256.9743075} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35fe07fe3f873fac6f320542ae7a6d5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"35fe07fe3f873fac6f320542ae7a6d5c","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:56 +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":"35fe07fe3f873fac6f320542ae7a6d5c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b76c3551eb30389abf813217090fa880","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.669202,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383256,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1Nn0.h2bfkxcFeekR0KMwNYNXYqtGuVOEXTbIF9BbyJ0FccI"} 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":"b76c3551eb30389abf813217090fa880"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0db056c0-ef7d-4b3e-9cfc-96d931ac9b72","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.0042007} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b76c3551eb30389abf813217090fa880"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a74218e-033a-4c7e-a81a-0463bf03d196","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.008961} 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":"b76c3551eb30389abf813217090fa880"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"81aeb161-b024-4ccb-b8b7-d1948908692e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.0212867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a61a95c-d937-4a5b-bddd-d76e2e1a8278","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.0215495} 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":"b76c3551eb30389abf813217090fa880"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:57.021270175Z"}]},"request_id":"c31f9a6e-8f6c-4ce6-99c2-ddd73f14a56e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.0261762} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b76c3551eb30389abf813217090fa880"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"b76c3551eb30389abf813217090fa880","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:40: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.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b76c3551eb30389abf813217090fa880"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1N30.thGY3_1xZtWXRE8ryklIHusUPyCIGEkyEKfPsdqYLbU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"092121205540b9b8d85d769717e6c739","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188949,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383257,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1N30.thGY3_1xZtWXRE8ryklIHusUPyCIGEkyEKfPsdqYLbU"} 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":"092121205540b9b8d85d769717e6c739"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"7ced1010-5ef0-476d-bd35-b51fc693f613","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.5242982} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"092121205540b9b8d85d769717e6c739"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0cf67fb6-1cc2-471a-a58d-db83923ef65f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.5332735} 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":"092121205540b9b8d85d769717e6c739"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"7d97c0ed-da0e-45de-9936-61c08fdd646e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383257.5460253} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"092121205540b9b8d85d769717e6c739"},"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":"14/Jun/2024:16:40:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/54e38068-f366-4d9c-8ff0-669ea9915830 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"092121205540b9b8d85d769717e6c739"} device-1 | {"level":"info","message":"PATCH /devices/54e38068-f366-4d9c-8ff0-669ea9915830 200 39ms","method":"PATCH","requestID":"092121205540b9b8d85d769717e6c739","responseTime":39,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1N30.thGY3_1xZtWXRE8ryklIHusUPyCIGEkyEKfPsdqYLbU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a2de3f3fdb377404a00ec371fa132071","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.631943,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383257,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1N30.thGY3_1xZtWXRE8ryklIHusUPyCIGEkyEKfPsdqYLbU"} 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":"a2de3f3fdb377404a00ec371fa132071"},"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":"14/Jun/2024:16:40:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/54e38068-f366-4d9c-8ff0-669ea9915830/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":"a2de3f3fdb377404a00ec371fa132071"} device-1 | {"level":"info","message":"POST /devices/54e38068-f366-4d9c-8ff0-669ea9915830/websocket 200 22ms","method":"POST","requestID":"a2de3f3fdb377404a00ec371fa132071","responseTime":22,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830' 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":"695120b4aa33714da6fbc116374b1518","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b26917fb-0e83-40e1-a81d-22c817b7f049/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":"695120b4aa33714da6fbc116374b1518"} device-1 | {"level":"info","message":"OPTIONS /devices/b26917fb-0e83-40e1-a81d-22c817b7f049/websocket 200 2ms","method":"OPTIONS","requestID":"695120b4aa33714da6fbc116374b1518","responseTime":2,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5ca279051233f0031e4214525318cfa3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.219487,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"5ca279051233f0031e4214525318cfa3"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049/websocket 200 24ms","method":"POST","requestID":"5ca279051233f0031e4214525318cfa3","responseTime":24,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b26917fb-0e83-40e1-a81d-22c817b7f049/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5ca279051233f0031e4214525318cfa3"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"42119eb91b99a4c3ae7912e8b7d4035f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.416216,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"42119eb91b99a4c3ae7912e8b7d4035f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"44cc309d-c063-4f63-a58e-7f73f2ecfc65","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.1387503} 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":"42119eb91b99a4c3ae7912e8b7d4035f"},"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/54e38068-f366-4d9c-8ff0-669ea9915830? 200 19ms","method":"GET","requestID":"42119eb91b99a4c3ae7912e8b7d4035f","responseTime":19,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830?"} gateway-1 | {"time_local":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54e38068-f366-4d9c-8ff0-669ea9915830? 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":"42119eb91b99a4c3ae7912e8b7d4035f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4ebce1bc75733df19fead2c2668b0f5f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.237948,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"4ebce1bc75733df19fead2c2668b0f5f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:57.021270175Z"}]},"request_id":"6f67ebef-3f56-4217-861e-3e1e033f07cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.1686497} 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":"4ebce1bc75733df19fead2c2668b0f5f"},"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":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 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":"4ebce1bc75733df19fead2c2668b0f5f"} device-1 | {"level":"info","message":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 200 22ms","method":"GET","requestID":"4ebce1bc75733df19fead2c2668b0f5f","responseTime":22,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b6d018ce71563eb421b4465a7a8aa3ae","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:57580","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.04969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"b6d018ce71563eb421b4465a7a8aa3ae"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"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:57580","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656476,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"e10bb490-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.043379,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"e10bdba0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"eaad1bb8-c6c0-42d9-af6b-80564c77ddb1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.2346466} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e10bb490-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:57.021270175Z"}]},"request_id":"c2fc6fe5-7175-4dfc-8d01-7bdff395597a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.2386954} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e10bdba0-2a6c-11ef-91df-9f2f583abbec"},"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/54e38068-f366-4d9c-8ff0-669ea9915830? 200 17ms","method":"GET","requestID":"e10bb490-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 200 20ms","method":"GET","requestID":"e10bdba0-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"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/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.981958,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"e117e990-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.791814,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"e11837b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:44998","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44998","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.370372,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"755064f6-d833-4dbb-a39a-643423b36cbe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3199158} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d56845ad-5f37-4dd2-86c0-a64e96fdb5b9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.320043} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e117e990-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","rebac_allow":false,"scope_allow":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":"e11885d0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:57.021270175Z"}]},"request_id":"b2399ee9-6a6b-42de-b2bd-ff95959d505f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3211217} 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":"e11837b0-2a6c-11ef-91df-9f2f583abbec"},"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/54e38068-f366-4d9c-8ff0-669ea9915830? 200 23ms","method":"GET","requestID":"e117e990-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling 200 20ms","method":"POST","requestID":"e11885d0-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 200 24ms","method":"GET","requestID":"e11837b0-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff908304f-a8ae-47ca-809d-7a369bfdc57e#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff908304f-a8ae-47ca-809d-7a369bfdc57e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"f0ca9808-a95c-41e9-bd14-538d5222d579","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3325996} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d15c7c2d-9bfa-4c04-bd83-56f2244079d1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3329244} 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":"b6d018ce71563eb421b4465a7a8aa3ae"},"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:57580","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d1578942-51ff-4f5b-a0d5-29d9bc48bcee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3391035} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.149312,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","rebac_allow":false,"scope_allow":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":"e11c0840-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52337b56-1ad1-47ca-acb9-0d58f50a17d1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3400993} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.449203,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e11c5660-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6d018ce71563eb421b4465a7a8aa3ae"} experiment-1 | {"level":"info","message":"POST /experiments? 201 159ms","method":"POST","requestID":"b6d018ce71563eb421b4465a7a8aa3ae","responseTime":159,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling 200 14ms","method":"POST","requestID":"e11c0840-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling 200 13ms","method":"POST","requestID":"e11c5660-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a2b78dbbb6008bfc7843de0a2c091753","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.986581,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"a2b78dbbb6008bfc7843de0a2c091753"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b2c6dc0-a7c1-4012-978f-517e9a7c9206","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.354419} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.05671,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","rebac_allow":false,"scope_allow":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":"e11ea050-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:56.969774694Z"}]},"request_id":"b6916ab8-d258-42b5-a91f-289f55c88765","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.358967} 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":"a2b78dbbb6008bfc7843de0a2c091753"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling 200 13ms","method":"POST","requestID":"e11ea050-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"53919d3f-6606-4e87-aa90-c45c3e71e69c"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"7d0aa1f1-3e3d-4905-8a6c-743fb56304e7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"b2a007f4-d4a8-421f-82aa-f2fc6e979c05"}]},"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/b26917fb-0e83-40e1-a81d-22c817b7f049"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54e38068-f366-4d9c-8ff0-669ea9915830? 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":"a2b78dbbb6008bfc7843de0a2c091753"} device-1 | {"level":"info","message":"GET /devices/54e38068-f366-4d9c-8ff0-669ea9915830? 200 14ms","method":"GET","requestID":"a2b78dbbb6008bfc7843de0a2c091753","responseTime":14,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"61b73d1391b3ab02f270d65a2d7cde9e","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.757384,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"e1211150-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718836,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383259,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI1OX0.zHK9L32ZWvNqJXQ3CSGj4aUufANi2vC5wx6oio72IqM"} 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":"61b73d1391b3ab02f270d65a2d7cde9e"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:40:57.021270175Z"}]},"request_id":"c1709abc-1cbf-4aa7-aa58-4c94794ee6db","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.375851} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61b73d1391b3ab02f270d65a2d7cde9e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6c6683d7-5c8d-46ae-ac5b-8382e27755b9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.3769433} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f30c8b3-e99a-47a5-8717-26f290b900af","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.377098} 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":"e1211150-2a6c-11ef-91df-9f2f583abbec"},"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":"14/Jun/2024:16:40:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 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":"61b73d1391b3ab02f270d65a2d7cde9e"} device-1 | {"level":"info","message":"GET /devices/b26917fb-0e83-40e1-a81d-22c817b7f049? 200 13ms","method":"GET","requestID":"61b73d1391b3ab02f270d65a2d7cde9e","responseTime":13,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049?"} 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/926bdef3-d4b1-4fa6-9197-c5a5c856299d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d'"} 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 27ms","method":"POST","requestID":"e1211150-2a6c-11ef-91df-9f2f583abbec","responseTime":27,"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/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d1b51742-1399-490d-801d-0bbca6d38783","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.4219942} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.147357,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","rebac_allow":false,"scope_allow":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":"e1290090-2a6c-11ef-91df-9f2f583abbec"},"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/54e38068-f366-4d9c-8ff0-669ea9915830/signaling 200 9ms","method":"POST","requestID":"e1290090-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c65158ad-8d1e-4b62-be87-722998e68bc7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383259.4326122} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.094594,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:40:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","rebac_allow":false,"scope_allow":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":"e12aae40-2a6c-11ef-91df-9f2f583abbec"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling 200 9ms","method":"POST","requestID":"e12aae40-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","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/926bdef3-d4b1-4fa6-9197-c5a5c856299d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","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":"af1486837fa0ccb5e6d87ea9d1775715","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/b26917fb-0e83-40e1-a81d-22c817b7f049"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049'"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"af1486837fa0ccb5e6d87ea9d1775715","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"af1486837fa0ccb5e6d87ea9d1775715"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","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/926bdef3-d4b1-4fa6-9197-c5a5c856299d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","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":"030ec4e5c76533137bcd4f7648b5320d","responseTime":2,"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/b26917fb-0e83-40e1-a81d-22c817b7f049"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F926bdef3-d4b1-4fa6-9197-c5a5c856299d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34759090-c1cd-44b6-ae58-5534a264b9c4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.5938318} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.031446,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d","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":"e2741e30-2a6c-11ef-91df-9f2f583abbec"},"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/926bdef3-d4b1-4fa6-9197-c5a5c856299d 200 12ms","method":"GET","requestID":"e2741e30-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"030ec4e5c76533137bcd4f7648b5320d","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"030ec4e5c76533137bcd4f7648b5320d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0261e924-6920-41d2-923f-86276b92bbe4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.6272335} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.524116,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e2797560-2a6c-11ef-91df-9f2f583abbec"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling 200 10ms","method":"POST","requestID":"e2797560-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6c13ab34-bcf7-47fc-85b8-c625240df736","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.639841} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.379689,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e27b4a20-2a6c-11ef-91df-9f2f583abbec"},"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/54e38068-f366-4d9c-8ff0-669ea9915830/signaling 200 9ms","method":"POST","requestID":"e27b4a20-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2MX0.gW_m3JbZuCkGvF6FakQMQc2clrfekbHsUeK4gmMWJEE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"63be28ddb53bc49c97e2616b9bfa5452","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.420869,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383261,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2MX0.gW_m3JbZuCkGvF6FakQMQc2clrfekbHsUeK4gmMWJEE"} 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":"63be28ddb53bc49c97e2616b9bfa5452"},"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/f908304f-a8ae-47ca-809d-7a369bfdc57e"} gateway-1 | {"time_local":"14/Jun/2024:16:41:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63be28ddb53bc49c97e2616b9bfa5452"} experiment-1 | {"level":"info","message":"GET /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e 200 18ms","method":"GET","requestID":"63be28ddb53bc49c97e2616b9bfa5452","responseTime":18,"status":200,"url":"/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2MX0.gW_m3JbZuCkGvF6FakQMQc2clrfekbHsUeK4gmMWJEE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"afe33f9ab9591bd091b101b19ef218f3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.469479,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383261,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2MX0.gW_m3JbZuCkGvF6FakQMQc2clrfekbHsUeK4gmMWJEE"} 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":"afe33f9ab9591bd091b101b19ef218f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.667832,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383261,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2MX0.gW_m3JbZuCkGvF6FakQMQc2clrfekbHsUeK4gmMWJEE"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","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":"e29ba360-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7e282f02f2de966c7b5c64f80ee89a54","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F926bdef3-d4b1-4fa6-9197-c5a5c856299d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F926bdef3-d4b1-4fa6-9197-c5a5c856299d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"12bae5c6-21bc-4066-a2f3-68f43796a95b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.8740776} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4413e58d-a041-4393-94aa-20704daf86fc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.8747623} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"69b6dde1a5efcfa38793ec3b254f3dc6","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e29ba360-2a6c-11ef-91df-9f2f583abbec"},"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":"connected","url":"http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"926bdef3-d4b1-4fa6-9197-c5a5c856299d","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/926bdef3-d4b1-4fa6-9197-c5a5c856299d 204 47ms","method":"DELETE","requestID":"e29ba360-2a6c-11ef-91df-9f2f583abbec","responseTime":47,"status":204,"url":"/peerconnections/926bdef3-d4b1-4fa6-9197-c5a5c856299d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb26917fb-0e83-40e1-a81d-22c817b7f049","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7195edf6-8db1-4e76-9c16-ff17b1adf54f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.917092} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.800582,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b26917fb-0e83-40e1-a81d-22c817b7f049","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e2a5b580-2a6c-11ef-91df-9f2f583abbec"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049/signaling 200 12ms","method":"POST","requestID":"e2a5b580-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/b26917fb-0e83-40e1-a81d-22c817b7f049/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b22c6834-13f8-433c-9d1f-abb9d013db9b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.924932} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff908304f-a8ae-47ca-809d-7a369bfdc57e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff908304f-a8ae-47ca-809d-7a369bfdc57e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"f2015388-4f69-4164-9899-4e3854c1a323","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.9253423} 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":"afe33f9ab9591bd091b101b19ef218f3"},"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:57580","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54e38068-f366-4d9c-8ff0-669ea9915830","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b64f320f-274f-4911-b9ed-4a3b4c2ba9d1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383261.932211} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.628215,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54e38068-f366-4d9c-8ff0-669ea9915830","object_type":"device","rebac_allow":false,"scope_allow":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":"e2a7d860-2a6c-11ef-91df-9f2f583abbec"},"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/54e38068-f366-4d9c-8ff0-669ea9915830/signaling 200 11ms","method":"POST","requestID":"e2a7d860-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/54e38068-f366-4d9c-8ff0-669ea9915830/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"} gateway-1 | {"time_local":"14/Jun/2024:16:41:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e 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":"afe33f9ab9591bd091b101b19ef218f3"} experiment-1 | {"level":"info","message":"DELETE /experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e 204 170ms","method":"DELETE","requestID":"afe33f9ab9591bd091b101b19ef218f3","responseTime":170,"status":204,"url":"/experiments/f908304f-a8ae-47ca-809d-7a369bfdc57e"} gateway-1 | {"time_local":"14/Jun/2024:16:41:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2582","request_time":"4.418","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4039a0a5a6b3147bf24a3ed639e2d238"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"69b6dde1a5efcfa38793ec3b254f3dc6","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"69b6dde1a5efcfa38793ec3b254f3dc6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"7e282f02f2de966c7b5c64f80ee89a54","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.129","http_referrer":"","http_user_agent":"node-fetch","requestID":"7e282f02f2de966c7b5c64f80ee89a54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f176f8f0425630aabb417d1266d61263","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.902","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9b9c78191b385b4ff069c39b0a801e8f"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.76549,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"f176f8f0425630aabb417d1266d61263"},"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/54e38068-f366-4d9c-8ff0-669ea9915830' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f22c1872-177c-407d-bb78-4c007bc829a3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0259087} 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":"f176f8f0425630aabb417d1266d61263"},"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/b26917fb-0e83-40e1-a81d-22c817b7f049' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ca80031-a0bc-48c6-8105-729690c428e9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0312471} 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":"f176f8f0425630aabb417d1266d61263"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a585baba-c3be-448a-95ce-24f75da18f52","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0399868} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9dc9673c-bf49-4c4f-8936-ca5e0a8a949b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0402493} 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":"f176f8f0425630aabb417d1266d61263"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"b39a46dd-1461-436a-b1ab-2a9fa54243a6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0444427} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f176f8f0425630aabb417d1266d61263"},"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":"14/Jun/2024:16:41:02 +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":"f176f8f0425630aabb417d1266d61263"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"f176f8f0425630aabb417d1266d61263","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cf32afdb29ad72f2a2088fe6e9d7623b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.858608,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"cf32afdb29ad72f2a2088fe6e9d7623b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8719bfbb-f171-4d0b-be0a-6d8a0afec435","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.074451} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cf32afdb29ad72f2a2088fe6e9d7623b"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4be18692-0f1a-4378-b34e-146905940c67","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0789108} 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":"cf32afdb29ad72f2a2088fe6e9d7623b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"860bea4f-6e56-4a00-9b19-1ab00f8a930f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0894814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3e67f025-7764-458d-92f0-c24073d762f2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0897217} 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":"cf32afdb29ad72f2a2088fe6e9d7623b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"f75482ec-4085-4807-9bf5-7c48ae0c56c3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.0939991} 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":"cf32afdb29ad72f2a2088fe6e9d7623b"},"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":"14/Jun/2024:16:41:02 +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":"cf32afdb29ad72f2a2088fe6e9d7623b"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"cf32afdb29ad72f2a2088fe6e9d7623b","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"464aa86d1a72272e82d8b89f3c1c32e2","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"75914ff4c3021b0136530b8b7facdcc2","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:57580","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644519,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"464aa86d1a72272e82d8b89f3c1c32e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.680632,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"75914ff4c3021b0136530b8b7facdcc2"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"d89e6c0d-e4ba-4e68-af84-a29d221d33b2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.5819821} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"464aa86d1a72272e82d8b89f3c1c32e2"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"a085e50d-b628-436b-bf01-d7ba11716601","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.5827353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"75914ff4c3021b0136530b8b7facdcc2"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"211cb645-da0c-4f28-9da3-323cd4d0cca2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.5877824} 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":"464aa86d1a72272e82d8b89f3c1c32e2"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6385981-83cc-4b13-b5f1-67c9e1f8af50","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.5894768} 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":"75914ff4c3021b0136530b8b7facdcc2"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"a18f344d-ecc4-416f-9ec8-f750767fa579","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.5929503} 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":"75914ff4c3021b0136530b8b7facdcc2"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/60946b52-3893-4514-b082-19ac9cf256e3 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"75914ff4c3021b0136530b8b7facdcc2"} device-1 | {"level":"info","message":"PATCH /devices/60946b52-3893-4514-b082-19ac9cf256e3 200 24ms","method":"PATCH","requestID":"75914ff4c3021b0136530b8b7facdcc2","responseTime":24,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cc14e2fb2b6b9869f3d74fd4584d0111","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.004261,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"cc14e2fb2b6b9869f3d74fd4584d0111"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"a7069d7e-b55b-40be-a524-6a18c50ccb20","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.6046648} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"464aa86d1a72272e82d8b89f3c1c32e2"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/782eb5ec-6379-47ae-af08-38f7054b4bef 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":"464aa86d1a72272e82d8b89f3c1c32e2"} device-1 | {"level":"info","message":"PATCH /devices/782eb5ec-6379-47ae-af08-38f7054b4bef 200 39ms","method":"PATCH","requestID":"464aa86d1a72272e82d8b89f3c1c32e2","responseTime":39,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2c8f1717de15a46062bf42dd705f9f96","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.612101,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"2c8f1717de15a46062bf42dd705f9f96"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/60946b52-3893-4514-b082-19ac9cf256e3/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":"cc14e2fb2b6b9869f3d74fd4584d0111"} device-1 | {"level":"info","message":"POST /devices/60946b52-3893-4514-b082-19ac9cf256e3/websocket 200 22ms","method":"POST","requestID":"cc14e2fb2b6b9869f3d74fd4584d0111","responseTime":22,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/782eb5ec-6379-47ae-af08-38f7054b4bef/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2c8f1717de15a46062bf42dd705f9f96"} device-1 | {"level":"info","message":"POST /devices/782eb5ec-6379-47ae-af08-38f7054b4bef/websocket 200 18ms","method":"POST","requestID":"2c8f1717de15a46062bf42dd705f9f96","responseTime":18,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cabc1a7cffd7ec3f94dc5bebe3c73bb9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.036287,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"cabc1a7cffd7ec3f94dc5bebe3c73bb9"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"1041c7e3-7f29-4ef0-88e5-0bb0edcf4f97","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.6703389} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cabc1a7cffd7ec3f94dc5bebe3c73bb9"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/782eb5ec-6379-47ae-af08-38f7054b4bef? 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":"cabc1a7cffd7ec3f94dc5bebe3c73bb9"} device-1 | {"level":"info","message":"GET /devices/782eb5ec-6379-47ae-af08-38f7054b4bef? 200 13ms","method":"GET","requestID":"cabc1a7cffd7ec3f94dc5bebe3c73bb9","responseTime":13,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"578a9062de13feb18e62480075c623ab","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.058456,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"578a9062de13feb18e62480075c623ab"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"e3f25144-f92e-44cd-86ee-da3df5559bf1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.6911023} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"578a9062de13feb18e62480075c623ab"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"578a9062de13feb18e62480075c623ab"} device-1 | {"level":"info","message":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? 200 15ms","method":"GET","requestID":"578a9062de13feb18e62480075c623ab","responseTime":15,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4f2aa55bd3079ae26ee0b6edcb713315","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:57580","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.090093,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"4f2aa55bd3079ae26ee0b6edcb713315"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"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:57580","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.935291,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"e323bf20-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.581847,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"e3240d40-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"ef077d49-7e6e-4725-969c-2f8e21e64e5c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.7468522} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e323bf20-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"2e70e607-8462-45a3-bf26-abc58c3a6d2c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.747833} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3240d40-2a6c-11ef-91df-9f2f583abbec"},"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/782eb5ec-6379-47ae-af08-38f7054b4bef? 200 16ms","method":"GET","requestID":"e323bf20-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? 200 15ms","method":"GET","requestID":"e3240d40-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"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/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.917462,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"e32bfc80-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.583469,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:44998","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"e32c4aa0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:44998","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.348424,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a89c12c-b01d-41ac-81e2-de2fd8e320ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.7999885} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","rebac_allow":false,"scope_allow":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":"e32c71b0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"dc0e1c42-f0f9-4649-9656-1f555e807e49","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.803568} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e32bfc80-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"590365b1-77a6-4048-b69b-a3db0157e0cd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8059797} 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":"e32c4aa0-2a6c-11ef-91df-9f2f583abbec"},"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/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling 200 13ms","method":"POST","requestID":"e32c71b0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/782eb5ec-6379-47ae-af08-38f7054b4bef? 200 21ms","method":"GET","requestID":"e32bfc80-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} device-1 | {"level":"info","message":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? 200 21ms","method":"GET","requestID":"e32c4aa0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4230b1a2-0380-49eb-8caf-475e477bc1d2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8162487} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7b17ae3-b421-456d-99cf-3e56382cef30#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7b17ae3-b421-456d-99cf-3e56382cef30","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"26c029b3-e496-45da-8091-3bb085555083","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8169103} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.664626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e32ee2b0-2a6c-11ef-91df-9f2f583abbec"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"425b725a-dc6f-4087-a72d-4bd7e7e16060","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8172116} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"4f2aa55bd3079ae26ee0b6edcb713315"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"POST /devices/60946b52-3893-4514-b082-19ac9cf256e3/signaling 200 9ms","method":"POST","requestID":"e32ee2b0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d7c0d5c6-2f0c-4e78-ab98-f2b6b554cde4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8230908} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.17537,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","rebac_allow":false,"scope_allow":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":"e32fcd10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"level":"info","message":"POST /experiments? 201 125ms","method":"POST","requestID":"4f2aa55bd3079ae26ee0b6edcb713315","responseTime":125,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4f2aa55bd3079ae26ee0b6edcb713315"} device-1 | {"level":"info","message":"POST /devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling 200 11ms","method":"POST","requestID":"e32fcd10-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c4cc4d75f90c17b94f7b96e11e96f45f","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0406f5aa-2e90-4364-87d2-b3590c2a48dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8357399} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.695569,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","rebac_allow":false,"scope_allow":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":"e331c8e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:44986","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794609,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"c4cc4d75f90c17b94f7b96e11e96f45f"},"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/60946b52-3893-4514-b082-19ac9cf256e3/signaling 200 12ms","method":"POST","requestID":"e331c8e0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.039964877Z"}]},"request_id":"dace5de8-8f8b-431d-b812-1225a7ec24c0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8427873} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"a2c6bd66-c88a-4727-8095-928b23ce6008"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"83d693ec-c84c-478f-9020-3f8700ceee16"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"953b9051-4988-4e23-a434-ee907b2103e2"}]},"level":"info","message":"Built pairwise service configurations"} 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":"c4cc4d75f90c17b94f7b96e11e96f45f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} 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/782eb5ec-6379-47ae-af08-38f7054b4bef"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3"}],"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:57580","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} gateway-1 | {"time_local":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/782eb5ec-6379-47ae-af08-38f7054b4bef? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c4cc4d75f90c17b94f7b96e11e96f45f"} device-1 | {"level":"info","message":"GET /devices/782eb5ec-6379-47ae-af08-38f7054b4bef? 200 16ms","method":"GET","requestID":"c4cc4d75f90c17b94f7b96e11e96f45f","responseTime":16,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.331157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"e33439e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06f8667562369e9f1b5623945983d1be","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708852,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383262,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2Mn0.zGRYNFxIFvPDzNNj-HbIupoamdZX7kcYJIX0u-u_6b0"} 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":"06f8667562369e9f1b5623945983d1be"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"5cc247be-8549-4c70-8953-91e8951c1ebe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8637547} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"243462f8-f048-4501-ba7b-afb5f8a96002","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.864043} 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":"e33439e0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:02.089457656Z"}]},"request_id":"e508b3cf-e4f3-4fbf-847d-1be6b2c2580b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.8650024} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06f8667562369e9f1b5623945983d1be"},"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":"14/Jun/2024:16:41:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? 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":"06f8667562369e9f1b5623945983d1be"} device-1 | {"level":"info","message":"GET /devices/60946b52-3893-4514-b082-19ac9cf256e3? 200 20ms","method":"GET","requestID":"06f8667562369e9f1b5623945983d1be","responseTime":20,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3?"} 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/91f404ec-8532-46bb-b7e7-a3799e985512'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512'"} 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 33ms","method":"POST","requestID":"e33439e0-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"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/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e863c77e-37c5-4f00-843a-762b0994e62b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.9140007} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.000914,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","rebac_allow":false,"scope_allow":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":"e33dafc0-2a6c-11ef-91df-9f2f583abbec"},"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/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling 200 11ms","method":"POST","requestID":"e33dafc0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4ec5963-4142-4091-a2eb-d7ec0d42c5f9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383262.9282246} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.088717,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","rebac_allow":false,"scope_allow":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":"e33ff9b0-2a6c-11ef-91df-9f2f583abbec"},"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/60946b52-3893-4514-b082-19ac9cf256e3/signaling 200 9ms","method":"POST","requestID":"e33ff9b0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/signaling"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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/91f404ec-8532-46bb-b7e7-a3799e985512' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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":"91a22d189572eb4ad3099f0fe0b4fbf3","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/782eb5ec-6379-47ae-af08-38f7054b4bef"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"91a22d189572eb4ad3099f0fe0b4fbf3","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"91a22d189572eb4ad3099f0fe0b4fbf3"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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/91f404ec-8532-46bb-b7e7-a3799e985512' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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":"7af2d202e552177c11e034cdfbb17d96","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":"connected","url":"http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:04Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91f404ec-8532-46bb-b7e7-a3799e985512","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbcd3e8b-bd62-49f3-94b6-bddb7bad2440","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383264.9973154} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.900014,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512","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":"e47b86f0-2a6c-11ef-91df-9f2f583abbec"},"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/91f404ec-8532-46bb-b7e7-a3799e985512 200 11ms","method":"GET","requestID":"e47b86f0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"7af2d202e552177c11e034cdfbb17d96","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"7af2d202e552177c11e034cdfbb17d96"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8c343cf3-d435-4952-9b34-2a8872887d13","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.0281823} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.584261,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","rebac_allow":false,"scope_allow":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":"e48068f0-2a6c-11ef-91df-9f2f583abbec"},"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/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling 200 10ms","method":"POST","requestID":"e48068f0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"084417dd-62e6-4a99-897a-3bd9614dbcdb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.0418093} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.446553,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e48264c0-2a6c-11ef-91df-9f2f583abbec"},"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/60946b52-3893-4514-b082-19ac9cf256e3/signaling 200 10ms","method":"POST","requestID":"e48264c0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"894740544f75b7e86f8ccbad3f79f513","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.242838,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383265,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY"} 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":"894740544f75b7e86f8ccbad3f79f513"},"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/a7b17ae3-b421-456d-99cf-3e56382cef30"} gateway-1 | {"time_local":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30 HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"894740544f75b7e86f8ccbad3f79f513"} experiment-1 | {"level":"info","message":"GET /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30 200 19ms","method":"GET","requestID":"894740544f75b7e86f8ccbad3f79f513","responseTime":19,"status":200,"url":"/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b5db6b6993e7317eb7b631d29f5d75eb","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.311386,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383265,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY"} 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":"b5db6b6993e7317eb7b631d29f5d75eb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.16829,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383265,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY"} 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":"e49f89b0-2a6c-11ef-91df-9f2f583abbec"},"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/91f404ec-8532-46bb-b7e7-a3799e985512' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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":"0feff83478e89ef5819a13c10313f47b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91f404ec-8532-46bb-b7e7-a3799e985512': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F91f404ec-8532-46bb-b7e7-a3799e985512","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"23eb64c1-7c62-406a-b7fa-92a431d7ad16","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.2515848} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d6109b0-827d-4553-a4d1-a8503bd6ee58","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.2519271} 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/782eb5ec-6379-47ae-af08-38f7054b4bef"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"}}},"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":"89cf3d5cafd2c8bc1354f54cae3347aa","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/782eb5ec-6379-47ae-af08-38f7054b4bef"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e49f89b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"peerconnection":"91f404ec-8532-46bb-b7e7-a3799e985512","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/91f404ec-8532-46bb-b7e7-a3799e985512 204 43ms","method":"DELETE","requestID":"e49f89b0-2a6c-11ef-91df-9f2f583abbec","responseTime":43,"status":204,"url":"/peerconnections/91f404ec-8532-46bb-b7e7-a3799e985512"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F782eb5ec-6379-47ae-af08-38f7054b4bef","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b50db08-724a-46d0-865a-b7bc6084ac23","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.299707} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.273669,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/782eb5ec-6379-47ae-af08-38f7054b4bef","object_type":"device","rebac_allow":false,"scope_allow":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":"e4a99bd0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7b17ae3-b421-456d-99cf-3e56382cef30': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa7b17ae3-b421-456d-99cf-3e56382cef30","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"e6ce663b-e866-4978-8116-9a8362f81e73","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.3067002} device-1 | {"level":"info","message":"POST /devices/782eb5ec-6379-47ae-af08-38f7054b4bef/signaling 200 14ms","method":"POST","requestID":"e4a99bd0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/782eb5ec-6379-47ae-af08-38f7054b4bef/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"44f04d75-fff7-4a93-a329-eab5a674bbec","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.3068671} 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":"b5db6b6993e7317eb7b631d29f5d75eb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F60946b52-3893-4514-b082-19ac9cf256e3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b10c2d56-5626-467c-bcc6-a657e5bddcc0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.3149865} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.199524,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3","object_type":"device","rebac_allow":false,"scope_allow":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":"e4ac33e0-2a6c-11ef-91df-9f2f583abbec"},"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/60946b52-3893-4514-b082-19ac9cf256e3/signaling 200 10ms","method":"POST","requestID":"e4ac33e0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/60946b52-3893-4514-b082-19ac9cf256e3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"} gateway-1 | {"time_local":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5db6b6993e7317eb7b631d29f5d75eb"} experiment-1 | {"level":"info","message":"DELETE /experiments/a7b17ae3-b421-456d-99cf-3e56382cef30 204 157ms","method":"DELETE","requestID":"b5db6b6993e7317eb7b631d29f5d75eb","responseTime":157,"status":204,"url":"/experiments/a7b17ae3-b421-456d-99cf-3e56382cef30"} gateway-1 | {"time_local":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.743","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ec4949b5d492859f3ccb807fb4d2336f"} gateway-1 | {"time_local":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.733","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6e4cacce2fb2ee9270de411ba1166f15"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"0feff83478e89ef5819a13c10313f47b","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.121","http_referrer":"","http_user_agent":"node-fetch","requestID":"0feff83478e89ef5819a13c10313f47b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"89cf3d5cafd2c8bc1354f54cae3347aa","responseTime":118,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.122","http_referrer":"","http_user_agent":"node-fetch","requestID":"89cf3d5cafd2c8bc1354f54cae3347aa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c4f742a07f441606d843c0a4234d7378","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/782eb5ec-6379-47ae-af08-38f7054b4bef' closed"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.050584,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383265,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY"} 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":"c4f742a07f441606d843c0a4234d7378"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/60946b52-3893-4514-b082-19ac9cf256e3' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"08754424-0735-496c-849f-a24ff498c323","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.4010289} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c4f742a07f441606d843c0a4234d7378"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a242e217-7e51-4980-a2ec-9c6a0160375d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.4065545} 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":"c4f742a07f441606d843c0a4234d7378"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"f2210722-7185-44b4-8665-62ad7bb5abda","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.415703} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68c755d9-72da-489c-89aa-f98cbf34850a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.4159598} 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":"c4f742a07f441606d843c0a4234d7378"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.415675568Z"}]},"request_id":"31a45002-6ea3-4b42-8b9f-cb93c21bc033","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.4200296} 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":"c4f742a07f441606d843c0a4234d7378"},"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":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c4f742a07f441606d843c0a4234d7378"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"c4f742a07f441606d843c0a4234d7378","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bd3a94ebef096830f9dca6069fdc99ba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.939506,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383265,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2NX0.LRl_cdkTtElxKn0nndXvnxJHoNb90g4F95GOhtZrzcY"} 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":"bd3a94ebef096830f9dca6069fdc99ba"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"05548439-3f19-40dd-8ced-c31f58c400ff","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.443468} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bd3a94ebef096830f9dca6069fdc99ba"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8dbb806-4504-446e-b9ab-32ba874d7add","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.449399} 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":"bd3a94ebef096830f9dca6069fdc99ba"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"f8e970dc-5948-4e4a-b5c7-ae24777dca83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.464429} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b4f9604-1d73-4f0a-9bbd-728f1142bb1e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.4646244} 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":"bd3a94ebef096830f9dca6069fdc99ba"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.464407789Z"}]},"request_id":"b84c79e2-45b9-4179-b6f0-f33446ff32f3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383265.46961} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bd3a94ebef096830f9dca6069fdc99ba"},"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":"14/Jun/2024:16:41:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd3a94ebef096830f9dca6069fdc99ba"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"bd3a94ebef096830f9dca6069fdc99ba","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"76457bd1364217b01d15708f052fb80c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/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":"76457bd1364217b01d15708f052fb80c"} device-1 | {"level":"info","message":"OPTIONS /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/websocket 200 1ms","method":"OPTIONS","requestID":"76457bd1364217b01d15708f052fb80c","responseTime":1,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"be51bde583a8caf8c8f021ec1617a118","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)"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f0f304826ac68faca5c826a3376f53e8","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/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":"f0f304826ac68faca5c826a3376f53e8"} device-1 | {"level":"info","message":"OPTIONS /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/websocket 200 1ms","method":"OPTIONS","requestID":"f0f304826ac68faca5c826a3376f53e8","responseTime":1,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/websocket"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618261,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"be51bde583a8caf8c8f021ec1617a118"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6b23f601c5503aebe1c2c4b78bb7dd56","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.901948,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"6b23f601c5503aebe1c2c4b78bb7dd56"},"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":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"be51bde583a8caf8c8f021ec1617a118"} device-1 | {"level":"info","message":"POST /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/websocket 200 20ms","method":"POST","requestID":"be51bde583a8caf8c8f021ec1617a118","responseTime":20,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/websocket 200 24ms","method":"POST","requestID":"6b23f601c5503aebe1c2c4b78bb7dd56","responseTime":24,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6b23f601c5503aebe1c2c4b78bb7dd56"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5373ffa6410008837a9035aa5c179556","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20695,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"5373ffa6410008837a9035aa5c179556"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.415675568Z"}]},"request_id":"0f220f0f-f113-4204-a62f-d56862a3c1c5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.5629327} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5373ffa6410008837a9035aa5c179556"},"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":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 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":"5373ffa6410008837a9035aa5c179556"} device-1 | {"level":"info","message":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 200 18ms","method":"GET","requestID":"5373ffa6410008837a9035aa5c179556","responseTime":18,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d36b4d87e5c6e6205c37586301b9f8bb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679555,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"d36b4d87e5c6e6205c37586301b9f8bb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.464407789Z"}]},"request_id":"52127554-c99e-49ab-ab72-d3cff402bfd6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.5876265} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d36b4d87e5c6e6205c37586301b9f8bb"},"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":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f201e32a-8c14-4848-994e-5978ff20a2a4? 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":"d36b4d87e5c6e6205c37586301b9f8bb"} device-1 | {"level":"info","message":"GET /devices/f201e32a-8c14-4848-994e-5978ff20a2a4? 200 17ms","method":"GET","requestID":"d36b4d87e5c6e6205c37586301b9f8bb","responseTime":17,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"14ee95eb5ffa2d9920097f44cd6a17a7","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:57580","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.305234,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"14ee95eb5ffa2d9920097f44cd6a17a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"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:57580","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.272745,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"e6116930-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.026493,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"e611b750-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.415675568Z"}]},"request_id":"d2915a25-e455-4a6a-bef2-3d0a797e749b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.665983} 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":"e6116930-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.464407789Z"}]},"request_id":"7b35b879-b9b8-4aa9-b9f2-88e32db0295f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.6709294} device-1 | {"level":"info","message":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 200 21ms","method":"GET","requestID":"e6116930-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e611b750-2a6c-11ef-91df-9f2f583abbec"},"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/f201e32a-8c14-4848-994e-5978ff20a2a4? 200 24ms","method":"GET","requestID":"e611b750-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"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:57580","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.324037,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"e61d5010-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.898061,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"e61d9e30-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"80170468-9cc1-43b5-a0fc-03f3b5783062","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7412117} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.744563,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","rebac_allow":false,"scope_allow":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":"e61dec50-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.464407789Z"}]},"request_id":"5f364c93-2964-47d0-bf59-97c1a737e17e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7446125} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"e61d9e30-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.415675568Z"}]},"request_id":"8b6bd640-95c2-4172-b3c5-e3a44277cdf5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7482548} device-1 | {"level":"info","message":"POST /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling 200 16ms","method":"POST","requestID":"e61dec50-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/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":"e61d5010-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f201e32a-8c14-4848-994e-5978ff20a2a4? 200 28ms","method":"GET","requestID":"e61d9e30-2a6c-11ef-91df-9f2f583abbec","responseTime":28,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce2f62a3-ff6d-4acc-8e2a-3785fe51597f#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce2f62a3-ff6d-4acc-8e2a-3785fe51597f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"2219c490-46f4-4607-adf4-f5cacfaf19f3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.759358} device-1 | {"level":"info","message":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 200 32ms","method":"GET","requestID":"e61d5010-2a6c-11ef-91df-9f2f583abbec","responseTime":32,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"246a928c-64ed-4b3e-903f-9acf1fdbe50a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7595015} 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":"14ee95eb5ffa2d9920097f44cd6a17a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73e94ade-f128-4ab9-9fe6-63d5592358ef","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7629476} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.114817,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","rebac_allow":false,"scope_allow":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":"e620f990-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling 200 16ms","method":"POST","requestID":"e620f990-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1181deae-2a0f-4b9b-a9c9-9cfe94cf580c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.770872} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.610158,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","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":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"14ee95eb5ffa2d9920097f44cd6a17a7"} 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":"e6228030-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"POST /experiments? 201 170ms","method":"POST","requestID":"14ee95eb5ffa2d9920097f44cd6a17a7","responseTime":170,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling 200 13ms","method":"POST","requestID":"e6228030-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","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":"14ab299b728292e1fa3022ab85589b7f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4faf07e-34e5-497c-b4cd-6e0dc4bdf627","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7829564} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.815762,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"14ab299b728292e1fa3022ab85589b7f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.596183,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","rebac_allow":false,"scope_allow":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":"e624ca20-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.415675568Z"}]},"request_id":"3d013af3-23a9-4ade-9e75-92406d1f6e03","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.7872472} device-1 | {"level":"info","message":"POST /devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling 200 9ms","method":"POST","requestID":"e624ca20-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/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":"14ab299b728292e1fa3022ab85589b7f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"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":"9092a81d-caf9-413a-862b-be98299b6268"},{"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":"3c32674d-7f7e-4d01-946f-3804b3a08bf8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f97dbab4-75d2-421e-9a2c-02c2be54742e"}]},"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/05fd15a3-1a31-4e29-9def-e5b411827be8"},{"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/f201e32a-8c14-4848-994e-5978ff20a2a4"}],"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":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 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":"14ab299b728292e1fa3022ab85589b7f"} device-1 | {"level":"info","message":"GET /devices/05fd15a3-1a31-4e29-9def-e5b411827be8? 200 14ms","method":"GET","requestID":"14ab299b728292e1fa3022ab85589b7f","responseTime":14,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.924075,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"e626c5f0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b8e3e90ac545b591a1e36b48519a823d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732684,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383267,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2N30.SjYohG3gLc_neLHFTHW17yDdCNmC6Ir_Rw0n535V4a0"} 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":"b8e3e90ac545b591a1e36b48519a823d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"00c9408b-346c-40f1-850b-ec73bd61c244","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.8073041} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f1001fd9-9d85-4171-b49b-d9ff848400b8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.8074596} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:05.464407789Z"}]},"request_id":"f5f2ead7-d6f6-46c6-aed2-ce0f67fc8c82","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.808547} 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":"e626c5f0-2a6c-11ef-91df-9f2f583abbec"},"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":"b8e3e90ac545b591a1e36b48519a823d"},"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/f201e32a-8c14-4848-994e-5978ff20a2a4? 200 15ms","method":"GET","requestID":"b8e3e90ac545b591a1e36b48519a823d","responseTime":15,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f201e32a-8c14-4848-994e-5978ff20a2a4? 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":"b8e3e90ac545b591a1e36b48519a823d"} 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/7b534fa9-7b7e-43f9-8453-0ee619ded753'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753'"} 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 33ms","method":"POST","requestID":"e626c5f0-2a6c-11ef-91df-9f2f583abbec","responseTime":33,"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/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1dea685d-5d7e-42ec-a33d-59fddcb56242","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.8626459} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.520442,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e630ff20-2a6c-11ef-91df-9f2f583abbec"},"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/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling 200 9ms","method":"POST","requestID":"e630ff20-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de9b7689-5970-4ca9-9125-b24ae36e2414","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.8734741} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.014859,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","rebac_allow":false,"scope_allow":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":"e632acd0-2a6c-11ef-91df-9f2f583abbec"},"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/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling 200 8ms","method":"POST","requestID":"e632acd0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f1f4a2f30da92e41fcd457d04c446874","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":"new","url":"http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8"},{"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/f201e32a-8c14-4848-994e-5978ff20a2a4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"f1f4a2f30da92e41fcd457d04c446874","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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":"f1f4a2f30da92e41fcd457d04c446874"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","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/7b534fa9-7b7e-43f9-8453-0ee619ded753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","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":"3b4075eefc4cf84d2e288ff3f5937fbd","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/05fd15a3-1a31-4e29-9def-e5b411827be8"},{"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/f201e32a-8c14-4848-994e-5978ff20a2a4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b534fa9-7b7e-43f9-8453-0ee619ded753","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca5ca17c-c9ef-4aa9-bc31-3673508ec27e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.9696891} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.235402,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753","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":"e64152d0-2a6c-11ef-91df-9f2f583abbec"},"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/7b534fa9-7b7e-43f9-8453-0ee619ded753 200 8ms","method":"GET","requestID":"e64152d0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 33ms","method":"POST","requestID":"3b4075eefc4cf84d2e288ff3f5937fbd","responseTime":33,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.036","http_referrer":"","http_user_agent":"node-fetch","requestID":"3b4075eefc4cf84d2e288ff3f5937fbd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eae18539-55e1-4838-9496-a64679a4e58f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383267.9985075} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.900121,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e645bfa0-2a6c-11ef-91df-9f2f583abbec"},"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/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling 200 9ms","method":"POST","requestID":"e645bfa0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad666ac3-a095-4165-9e48-ddd82a4e96b8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.008947} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.233221,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","rebac_allow":false,"scope_allow":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":"e6476d50-2a6c-11ef-91df-9f2f583abbec"},"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/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling 200 7ms","method":"POST","requestID":"e6476d50-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8051bdb6cc5180ac234c16113342522f","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.145423,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383268,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE"} 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":"8051bdb6cc5180ac234c16113342522f"},"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/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f 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":"8051bdb6cc5180ac234c16113342522f"} experiment-1 | {"level":"info","message":"GET /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f 200 13ms","method":"GET","requestID":"8051bdb6cc5180ac234c16113342522f","responseTime":13,"status":200,"url":"/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"47fe9808babdaddf921d409ee998bc4d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.9986,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383268,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE"} 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":"47fe9808babdaddf921d409ee998bc4d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.740274,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383268,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE"} 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":"e652df00-2a6c-11ef-91df-9f2f583abbec"},"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/7b534fa9-7b7e-43f9-8453-0ee619ded753' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b534fa9-7b7e-43f9-8453-0ee619ded753': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b534fa9-7b7e-43f9-8453-0ee619ded753","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"19a5f8e2-5d89-467e-bd6f-67f664f733cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.1009386} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed648b83-eea3-4102-828a-f1104b98cb10","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.101148} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2a7d45adcc07dd530a4b680622438b5d","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":"e652df00-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/05fd15a3-1a31-4e29-9def-e5b411827be8"},{"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/f201e32a-8c14-4848-994e-5978ff20a2a4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"}}},"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":"21fa9016bfe622532c0fd80c15e24e41","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8"},{"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/f201e32a-8c14-4848-994e-5978ff20a2a4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"7b534fa9-7b7e-43f9-8453-0ee619ded753","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/7b534fa9-7b7e-43f9-8453-0ee619ded753 204 44ms","method":"DELETE","requestID":"e652df00-2a6c-11ef-91df-9f2f583abbec","responseTime":44,"status":204,"url":"/peerconnections/7b534fa9-7b7e-43f9-8453-0ee619ded753"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05fd15a3-1a31-4e29-9def-e5b411827be8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6336072c-3d1a-456c-b893-d60c19efab2f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.1577508} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.128661,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05fd15a3-1a31-4e29-9def-e5b411827be8","object_type":"device","rebac_allow":false,"scope_allow":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":"e65d8d60-2a6c-11ef-91df-9f2f583abbec"},"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/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling 200 16ms","method":"POST","requestID":"e65d8d60-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/05fd15a3-1a31-4e29-9def-e5b411827be8/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce2f62a3-ff6d-4acc-8e2a-3785fe51597f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce2f62a3-ff6d-4acc-8e2a-3785fe51597f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"6bd81a39-6e3b-4535-9c70-de004f1f66ab","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.1670837} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62ab18db-8fcd-4b33-9c1d-be3ed1cb6313","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.167534} 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":"47fe9808babdaddf921d409ee998bc4d"},"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:57580","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff201e32a-8c14-4848-994e-5978ff20a2a4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aab4acaa-ae6e-46f3-b420-33251f26a417","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.1763642} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.556986,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4","object_type":"device","rebac_allow":false,"scope_allow":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":"e6609aa0-2a6c-11ef-91df-9f2f583abbec"},"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/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling 200 13ms","method":"POST","requestID":"e6609aa0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/f201e32a-8c14-4848-994e-5978ff20a2a4/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f 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":"47fe9808babdaddf921d409ee998bc4d"} experiment-1 | {"level":"info","message":"DELETE /experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f 204 176ms","method":"DELETE","requestID":"47fe9808babdaddf921d409ee998bc4d","responseTime":176,"status":204,"url":"/experiments/ce2f62a3-ff6d-4acc-8e2a-3785fe51597f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"2a7d45adcc07dd530a4b680622438b5d","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"2a7d45adcc07dd530a4b680622438b5d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"21fa9016bfe622532c0fd80c15e24e41","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"21fa9016bfe622532c0fd80c15e24e41"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2886","request_time":"0.729","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8c249f818da38068583cf50c072d3375"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"43f293b8a2fdc49c3f4a2e111ff24ae0","responseTime":10,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2885","request_time":"0.744","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"84cd2ea8f0b90d95442022dcbf4866ab"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f201e32a-8c14-4848-994e-5978ff20a2a4' closed"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.804135,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383268,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE"} 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":"43f293b8a2fdc49c3f4a2e111ff24ae0"},"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/05fd15a3-1a31-4e29-9def-e5b411827be8' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fe0d4dd6-4f0e-4018-8376-f2a9fbf92ae9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.2800162} 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":"43f293b8a2fdc49c3f4a2e111ff24ae0"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69c9b54e-7af8-471b-8785-08893cafb676","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.2846093} 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":"43f293b8a2fdc49c3f4a2e111ff24ae0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7d7f107a-b03c-4ec6-b7c9-01aee6770808","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.2948616} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4efca0d5-ee3c-47c6-8046-4a16718f684f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.2950544} 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":"43f293b8a2fdc49c3f4a2e111ff24ae0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.294834377Z"}]},"request_id":"249644d3-9a9e-4060-91bb-f667eca2dc4d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.2987452} 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":"43f293b8a2fdc49c3f4a2e111ff24ae0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"43f293b8a2fdc49c3f4a2e111ff24ae0","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43f293b8a2fdc49c3f4a2e111ff24ae0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2fcfe953b9b9a359a5f73ae829d8f89f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.894908,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383268,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI2OH0.ZpVDII_WEo9k8JTySkFFXXWct8Gsy-b6fUI3kgP4FbE"} 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":"2fcfe953b9b9a359a5f73ae829d8f89f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e32acca0-cc67-428e-a6e9-f3bc5d9193ba","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.3201592} 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":"2fcfe953b9b9a359a5f73ae829d8f89f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0cbf638d-7a62-4401-b8e4-70992c2e1036","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.3245924} 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":"2fcfe953b9b9a359a5f73ae829d8f89f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d132f6d1-910f-434b-bea8-73a867c5f0be","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.3405552} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85dd8acf-c948-4ea6-bb1a-116465ad2135","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.3407714} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fcfe953b9b9a359a5f73ae829d8f89f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.340531233Z"}]},"request_id":"ff895770-8c15-423c-a203-4e5fc16d8a00","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383268.3469408} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fcfe953b9b9a359a5f73ae829d8f89f"},"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 43ms","method":"POST","requestID":"2fcfe953b9b9a359a5f73ae829d8f89f","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2fcfe953b9b9a359a5f73ae829d8f89f"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9932049df979edfd0fd3d4c5937d99d1","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/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":"9932049df979edfd0fd3d4c5937d99d1"} device-1 | {"level":"info","message":"OPTIONS /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/websocket 200 2ms","method":"OPTIONS","requestID":"9932049df979edfd0fd3d4c5937d99d1","responseTime":2,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/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 2ms","method":"GET","requestID":"a8dea17c6dd2f0b0cbac325e44a7e715","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6b14f140-1fc2-4410-8037-016b61409b3a/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":"a8dea17c6dd2f0b0cbac325e44a7e715"} device-1 | {"level":"info","message":"OPTIONS /devices/6b14f140-1fc2-4410-8037-016b61409b3a/websocket 200 0ms","method":"OPTIONS","requestID":"a8dea17c6dd2f0b0cbac325e44a7e715","responseTime":0,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a4982501c7376e5a3336690a773abfa4","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723203,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"854c104fc2ac7c09d11d505dbd4f9a6f","responseTime":3,"status":200,"url":"/auth"} 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":"a4982501c7376e5a3336690a773abfa4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.749365,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"854c104fc2ac7c09d11d505dbd4f9a6f"},"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":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a4982501c7376e5a3336690a773abfa4"} device-1 | {"level":"info","message":"POST /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/websocket 200 19ms","method":"POST","requestID":"a4982501c7376e5a3336690a773abfa4","responseTime":19,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6b14f140-1fc2-4410-8037-016b61409b3a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"854c104fc2ac7c09d11d505dbd4f9a6f"} device-1 | {"level":"info","message":"POST /devices/6b14f140-1fc2-4410-8037-016b61409b3a/websocket 200 26ms","method":"POST","requestID":"854c104fc2ac7c09d11d505dbd4f9a6f","responseTime":26,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e6c6f9244fb0487529231aee8d39980b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.090009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e6c6f9244fb0487529231aee8d39980b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.294834377Z"}]},"request_id":"afbd22aa-0370-4bdb-9b60-8909c346efa4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.4148672} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6c6f9244fb0487529231aee8d39980b"},"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":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b14f140-1fc2-4410-8037-016b61409b3a? 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":"e6c6f9244fb0487529231aee8d39980b"} device-1 | {"level":"info","message":"GET /devices/6b14f140-1fc2-4410-8037-016b61409b3a? 200 15ms","method":"GET","requestID":"e6c6f9244fb0487529231aee8d39980b","responseTime":15,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dd8fcbbba6742fbd0a2d1c39d6286906","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.193507,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"dd8fcbbba6742fbd0a2d1c39d6286906"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.340531233Z"}]},"request_id":"60a988d7-c13b-45d6-9ee6-e485a36acc24","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.4356427} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8fcbbba6742fbd0a2d1c39d6286906"},"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 200 13ms","method":"GET","requestID":"dd8fcbbba6742fbd0a2d1c39d6286906","responseTime":13,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 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":"dd8fcbbba6742fbd0a2d1c39d6286906"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"97e785709b480824dfd2c75a75866b78","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:57580","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.174236,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"97e785709b480824dfd2c75a75866b78"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"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:57580","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.757355,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7c2c2b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.912026,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7c2e9c0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.294834377Z"}]},"request_id":"b1e10870-7b2c-483c-bebd-a7af0b41a8d0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.502222} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.340531233Z"}]},"request_id":"b93b3c6c-df0d-460f-8a52-f2d46adf0297","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.5079484} 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":"e7c2c2b0-2a6c-11ef-91df-9f2f583abbec"},"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 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":"e7c2e9c0-2a6c-11ef-91df-9f2f583abbec"},"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/6b14f140-1fc2-4410-8037-016b61409b3a? 200 23ms","method":"GET","requestID":"e7c2c2b0-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 200 24ms","method":"GET","requestID":"e7c2e9c0-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"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/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.065425,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7cc5fa0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.776207,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7ccadc0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.294834377Z"}]},"request_id":"030a09dc-dba6-4ab1-919d-f18f76c4007d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.569512} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.340531233Z"}]},"request_id":"5f0050a3-fa77-44e2-a54a-9b3f4395a177","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.5707972} 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":"e7cc5fa0-2a6c-11ef-91df-9f2f583abbec"},"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 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7ccadc0-2a6c-11ef-91df-9f2f583abbec"},"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:45824","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"100b4837-1b6e-44fc-8211-92a5ce93f54b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.5732849} authorization-1 | {"client_addr":"127.0.0.1:45824","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.480352,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7ccd4d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6b14f140-1fc2-4410-8037-016b61409b3a? 200 23ms","method":"GET","requestID":"e7cc5fa0-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 200 23ms","method":"GET","requestID":"e7ccadc0-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling 200 23ms","method":"POST","requestID":"e7ccd4d0-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb1bbdf1-c533-4fde-865d-21144af63763#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb1bbdf1-c533-4fde-865d-21144af63763","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"29bad996-15d2-40a9-a451-80edae181835","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.5833428} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d488e1b6-ab63-463e-8ab3-cd7de6fcc66f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.583748} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"97e785709b480824dfd2c75a75866b78"},"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:57580","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef27e9e5-f04e-43dc-b5b2-c5cb1503e958","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.5886323} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.836702,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e7d0a560-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71d8a7f2-f255-4ddd-96ef-351cbbb542bb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.591228} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.713026,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e7d0f380-2a6c-11ef-91df-9f2f583abbec"},"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/6b14f140-1fc2-4410-8037-016b61409b3a/signaling 200 13ms","method":"POST","requestID":"e7d0a560-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"97e785709b480824dfd2c75a75866b78"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"97e785709b480824dfd2c75a75866b78","responseTime":149,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling 200 12ms","method":"POST","requestID":"e7d0f380-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"51f58b8d0daf72eafeb178deb253ba98","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de93fa7d-e8d7-41a0-a555-6fd34be84276","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6033878} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.475838,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e7d31660-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.55514,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"51f58b8d0daf72eafeb178deb253ba98"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling 200 10ms","method":"POST","requestID":"e7d31660-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.294834377Z"}]},"request_id":"bb70c609-78f5-45d0-9fe8-add6f2798327","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6098003} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"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":"439170dd-42e8-4b77-9967-ed17ee918274"},{"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":"0b922906-ecea-4f6a-9d4f-e50db0a49d72"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"91a28462-e279-499b-a8b6-2a2fe8cff2be"}]},"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/6b14f140-1fc2-4410-8037-016b61409b3a"},{"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71"}],"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":"51f58b8d0daf72eafeb178deb253ba98"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6b14f140-1fc2-4410-8037-016b61409b3a? 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":"51f58b8d0daf72eafeb178deb253ba98"} device-1 | {"level":"info","message":"GET /devices/6b14f140-1fc2-4410-8037-016b61409b3a? 200 13ms","method":"GET","requestID":"51f58b8d0daf72eafeb178deb253ba98","responseTime":13,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.942706,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7d53940-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"117057941d6cf1f55d9bdf77b28aaa27","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.606032,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"117057941d6cf1f55d9bdf77b28aaa27"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7d3d7219-da0a-4c89-9b0f-c1b828ede7ac","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6247485} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d690590-6f3c-4534-be93-db2b0864445c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6249154} 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":"e7d53940-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:08.340531233Z"}]},"request_id":"e215f1f8-3ab8-4634-a751-bc43e32acbe2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6291053} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"117057941d6cf1f55d9bdf77b28aaa27"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 31ms","method":"POST","requestID":"e7d53940-2a6c-11ef-91df-9f2f583abbec","responseTime":31,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 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":"117057941d6cf1f55d9bdf77b28aaa27"} device-1 | {"level":"info","message":"GET /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71? 200 23ms","method":"GET","requestID":"117057941d6cf1f55d9bdf77b28aaa27","responseTime":23,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c30f14fb-374b-4915-abbc-df0d828a780a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.678481} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.86009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","rebac_allow":false,"scope_allow":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":"e7de39f0-2a6c-11ef-91df-9f2f583abbec"},"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/6b14f140-1fc2-4410-8037-016b61409b3a/signaling 200 11ms","method":"POST","requestID":"e7de39f0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"776e1496-ea80-4587-9a9b-57dd7ee5a6d1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.6892974} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.42256,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","rebac_allow":false,"scope_allow":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":"e7e05cd0-2a6c-11ef-91df-9f2f583abbec"},"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling 200 10ms","method":"POST","requestID":"e7e05cd0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a0884cade00440f2607ca1440ab84ef8","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":"new","url":"http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a"},{"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"a0884cade00440f2607ca1440ab84ef8","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"a0884cade00440f2607ca1440ab84ef8"} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","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/6992fb6c-57f9-4f98-99ef-6e85ef9013c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","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":"dee07b1fbbda470c63342427f58d0102","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/6b14f140-1fc2-4410-8037-016b61409b3a"},{"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6992fb6c-57f9-4f98-99ef-6e85ef9013c1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e9ba51b7-1db5-4f48-b85b-edda0e59542e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.759528} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.246974,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1","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":"e7eb0b30-2a6c-11ef-91df-9f2f583abbec"},"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/6992fb6c-57f9-4f98-99ef-6e85ef9013c1 200 8ms","method":"GET","requestID":"e7eb0b30-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"dee07b1fbbda470c63342427f58d0102","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"dee07b1fbbda470c63342427f58d0102"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66c22c6b-8e0c-4b03-9c53-6235a3a5f916","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.7820344} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.093451,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","rebac_allow":false,"scope_allow":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":"e7ee8da0-2a6c-11ef-91df-9f2f583abbec"},"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/6b14f140-1fc2-4410-8037-016b61409b3a/signaling 200 7ms","method":"POST","requestID":"e7ee8da0-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8d11980-bfb9-4ff5-a9ba-77a3bdee4d14","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.7913058} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.038343,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","rebac_allow":false,"scope_allow":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":"e7efed30-2a6c-11ef-91df-9f2f583abbec"},"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling 200 7ms","method":"POST","requestID":"e7efed30-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"16bb2a54423f0070c063199b3f7267e0","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.684201,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"16bb2a54423f0070c063199b3f7267e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} experiment-1 | {"level":"info","message":"GET /experiments/bb1bbdf1-c533-4fde-865d-21144af63763 200 9ms","method":"GET","requestID":"16bb2a54423f0070c063199b3f7267e0","responseTime":9,"status":200,"url":"/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} gateway-1 | {"time_local":"14/Jun/2024:16:41:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/bb1bbdf1-c533-4fde-865d-21144af63763 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16bb2a54423f0070c063199b3f7267e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"815c1383c862d3c10f47dd5ce21555ce","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.357062,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"815c1383c862d3c10f47dd5ce21555ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.803085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383270,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MH0.hT3PMWn5hC9bf7eoyJuooWOtod_LJYfmw2fhCQXgHR0"} 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":"e7fbd410-2a6c-11ef-91df-9f2f583abbec"},"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/6992fb6c-57f9-4f98-99ef-6e85ef9013c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"259bc05391456487d9842f5dab1496a3","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6992fb6c-57f9-4f98-99ef-6e85ef9013c1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6992fb6c-57f9-4f98-99ef-6e85ef9013c1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"3bb15e3b-830e-4fd9-8fb2-d83f05be5e0e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.887283} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f404f4c8-a352-4e84-9a94-586c92524603","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.887508} 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/6b14f140-1fc2-4410-8037-016b61409b3a"},{"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"}}},"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":"1e0129ea72d97323e452d190463dd883","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/6b14f140-1fc2-4410-8037-016b61409b3a"},{"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/5f547c11-382d-48b8-9ea4-5a1d33c56a71"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"}}},"level":"info","message":"received a callback"} 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":"e7fbd410-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"peerconnection":"6992fb6c-57f9-4f98-99ef-6e85ef9013c1","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/6992fb6c-57f9-4f98-99ef-6e85ef9013c1 204 43ms","method":"DELETE","requestID":"e7fbd410-2a6c-11ef-91df-9f2f583abbec","responseTime":43,"status":204,"url":"/peerconnections/6992fb6c-57f9-4f98-99ef-6e85ef9013c1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b14f140-1fc2-4410-8037-016b61409b3a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c9f2fdf0-0e4b-4417-a5c7-9953f204cfbd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.9278083} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.337124,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a","object_type":"device","rebac_allow":false,"scope_allow":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":"e804adb0-2a6c-11ef-91df-9f2f583abbec"},"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/6b14f140-1fc2-4410-8037-016b61409b3a/signaling 200 11ms","method":"POST","requestID":"e804adb0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/6b14f140-1fc2-4410-8037-016b61409b3a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb1bbdf1-c533-4fde-865d-21144af63763': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb1bbdf1-c533-4fde-865d-21144af63763","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"f506e62e-e2b1-4ce5-a53b-e0a61682a962","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.9420462} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f547c11-382d-48b8-9ea4-5a1d33c56a71","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"767d6e11-e28e-43cb-9152-3defb944fbc6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.9421566} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1150e465-fff4-480e-9d01-a8c4bb17f855","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383270.942258} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.180035,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71","object_type":"device","rebac_allow":false,"scope_allow":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":"e806d090-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} 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":"815c1383c862d3c10f47dd5ce21555ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling 200 10ms","method":"POST","requestID":"e806d090-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/bb1bbdf1-c533-4fde-865d-21144af63763 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"815c1383c862d3c10f47dd5ce21555ce"} experiment-1 | {"level":"info","message":"DELETE /experiments/bb1bbdf1-c533-4fde-865d-21144af63763 204 154ms","method":"DELETE","requestID":"815c1383c862d3c10f47dd5ce21555ce","responseTime":154,"status":204,"url":"/experiments/bb1bbdf1-c533-4fde-865d-21144af63763"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch","requestID":"259bc05391456487d9842f5dab1496a3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 121ms","method":"POST","requestID":"259bc05391456487d9842f5dab1496a3","responseTime":121,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 121ms","method":"POST","requestID":"1e0129ea72d97323e452d190463dd883","responseTime":121,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"1e0129ea72d97323e452d190463dd883"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2886","request_time":"0.646","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8701d47568fa72df1079f2383ff2b716"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2888","request_time":"0.636","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d991b525d9dabe97132a008124ddfa1c"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:11Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.851324,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383271,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw"} 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":"a5919087c96759a25706b6fa3f2deca1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"a5919087c96759a25706b6fa3f2deca1","responseTime":8,"status":200,"url":"/auth"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6b14f140-1fc2-4410-8037-016b61409b3a' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bbce8934-1d6d-4284-83b4-4792ca487121","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0312262} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5919087c96759a25706b6fa3f2deca1"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fcb1fbc5-b9f9-4307-a57e-ee42751df0c1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0355704} 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":"a5919087c96759a25706b6fa3f2deca1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5f547c11-382d-48b8-9ea4-5a1d33c56a71' closed"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7ec92941-8fcd-4e98-9976-dfb4ed66c736","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0463743} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37af9adc-6c29-4656-8c4e-2beb79c813bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0466769} 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":"a5919087c96759a25706b6fa3f2deca1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.046354434Z"}]},"request_id":"e07bfe45-737b-43f7-8fb6-78510aeab679","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0503483} 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":"a5919087c96759a25706b6fa3f2deca1"},"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":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a5919087c96759a25706b6fa3f2deca1"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"a5919087c96759a25706b6fa3f2deca1","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a6c5809815f555ab9d0236e52f6b68b1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.445234,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383271,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw"} 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":"a6c5809815f555ab9d0236e52f6b68b1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"384aca25-9518-4928-8e99-99891a67e70e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0714333} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6c5809815f555ab9d0236e52f6b68b1"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7ce95ab-4ac7-4383-91fc-23793fd10adf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0752182} 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":"a6c5809815f555ab9d0236e52f6b68b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"5b2265aa-0df0-4a92-bc4b-3684e0976b93","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0832407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"74c5916c-7c3e-41bf-afa6-ff0004d6e012","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0833936} 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":"a6c5809815f555ab9d0236e52f6b68b1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"25e3c0bc-f97a-4544-a192-5dc3f0ea1dbc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.0883641} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6c5809815f555ab9d0236e52f6b68b1"},"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":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a6c5809815f555ab9d0236e52f6b68b1"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"a6c5809815f555ab9d0236e52f6b68b1","responseTime":33,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dd3df0b4f90a2a6d25fb571200447fb5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.570789,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383271,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw"} 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":"dd3df0b4f90a2a6d25fb571200447fb5"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"807c54f4-edf6-48b1-9ac6-d91d77278641","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.5865808} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd3df0b4f90a2a6d25fb571200447fb5"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3848152-2c68-450b-bbf7-23f743868147","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.5920458} 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":"dd3df0b4f90a2a6d25fb571200447fb5"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"6ecdf673-191f-4903-9d3a-493a7d1212c7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383271.6043272} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd3df0b4f90a2a6d25fb571200447fb5"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4 200 33ms","method":"PATCH","requestID":"dd3df0b4f90a2a6d25fb571200447fb5","responseTime":33,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e4a889e7-d937-43bb-b171-bb63c95248e4 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"dd3df0b4f90a2a6d25fb571200447fb5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8c8392a3cfcd8a07168d2df25f561816","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.07184,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383271,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3MX0.B6JqGv2DmoQ6PRl0lKNb7geVV3xSgazhSNruVktkgiw"} 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":"8c8392a3cfcd8a07168d2df25f561816"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4/websocket 200 15ms","method":"POST","requestID":"8c8392a3cfcd8a07168d2df25f561816","responseTime":15,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e4a889e7-d937-43bb-b171-bb63c95248e4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8c8392a3cfcd8a07168d2df25f561816"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4' 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":"7a44e1f30f0898fd130e9a90610384cd","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/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":"7a44e1f30f0898fd130e9a90610384cd"} device-1 | {"level":"info","message":"OPTIONS /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/websocket 200 1ms","method":"OPTIONS","requestID":"7a44e1f30f0898fd130e9a90610384cd","responseTime":1,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c5d582bf86f9d1f67244dc509df439b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.299534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"c5d582bf86f9d1f67244dc509df439b3"},"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":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/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":"c5d582bf86f9d1f67244dc509df439b3"} device-1 | {"level":"info","message":"POST /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/websocket 200 29ms","method":"POST","requestID":"c5d582bf86f9d1f67244dc509df439b3","responseTime":29,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"09e25f850a0110dfc0fdf50be38e3841","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.197272,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"09e25f850a0110dfc0fdf50be38e3841"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.046354434Z"}]},"request_id":"2405f56a-00d1-4aac-ac99-74e89d515c1e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.1786103} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09e25f850a0110dfc0fdf50be38e3841"},"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":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e2cad36e-0087-40d6-8b5f-82598311b0de? 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":"09e25f850a0110dfc0fdf50be38e3841"} device-1 | {"level":"info","message":"GET /devices/e2cad36e-0087-40d6-8b5f-82598311b0de? 200 19ms","method":"GET","requestID":"09e25f850a0110dfc0fdf50be38e3841","responseTime":19,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fc41d4653dfec7ecf8bca6e5629f6435","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.203957,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"fc41d4653dfec7ecf8bca6e5629f6435"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"7a407f8f-c0b3-41fe-81d1-e354117c2cea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.204709} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc41d4653dfec7ecf8bca6e5629f6435"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4? 200 19ms","method":"GET","requestID":"fc41d4653dfec7ecf8bca6e5629f6435","responseTime":19,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e4a889e7-d937-43bb-b171-bb63c95248e4? 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":"fc41d4653dfec7ecf8bca6e5629f6435"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7d5e709b6062d312459d5537aeacbdbd","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:57580","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.184982,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"7d5e709b6062d312459d5537aeacbdbd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"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:57580","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.108009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"e96994e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.846915,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"e96a0a10-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.046354434Z"}]},"request_id":"df3e6356-fffd-4e61-8abb-73c506877d03","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.2756274} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e96994e0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"2d764c80-bb66-48ae-b161-9aa0d563d23d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.2768745} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e96a0a10-2a6c-11ef-91df-9f2f583abbec"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de? 200 21ms","method":"GET","requestID":"e96994e0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e4a889e7-d937-43bb-b171-bb63c95248e4? 200 21ms","method":"GET","requestID":"e96a0a10-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"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/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.942215,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"e9746a50-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.5824,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"e974b870-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c54019b5-087b-4119-9daf-f2eeb18bc88f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.343034} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.046354434Z"}]},"request_id":"4b230b1b-f942-43c1-9ff2-949094dd4cd4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3443868} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9746a50-2a6c-11ef-91df-9f2f583abbec"},"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:57580","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.912324,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","rebac_allow":false,"scope_allow":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":"e974df80-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"acdf512b-598e-42b6-8854-93af09ebf945","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3453794} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e974b870-2a6c-11ef-91df-9f2f583abbec"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de? 200 19ms","method":"GET","requestID":"e9746a50-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling 200 17ms","method":"POST","requestID":"e974df80-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e4a889e7-d937-43bb-b171-bb63c95248e4? 200 20ms","method":"GET","requestID":"e974b870-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbaa05593-8635-4720-82fd-3798f7acd6ab#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbaa05593-8635-4720-82fd-3798f7acd6ab","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"30dcde20-dfb0-4636-9380-fb73f002f22c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3569965} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c5a12a91-86e4-4117-b9db-1e2d6468eb7e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3572154} 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":"7d5e709b6062d312459d5537aeacbdbd"},"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:57580","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c391022-9fbf-4d66-bea4-15dbb9626cda","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3618567} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.811487,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","rebac_allow":false,"scope_allow":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":"e977c5b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f359e2c-8c9f-412a-9345-0fa0147e4427","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3647006} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.342325,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","rebac_allow":false,"scope_allow":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":"e9783ae0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.155","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d5e709b6062d312459d5537aeacbdbd"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"7d5e709b6062d312459d5537aeacbdbd","responseTime":149,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling 200 14ms","method":"POST","requestID":"e977c5b0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling 200 13ms","method":"POST","requestID":"e9783ae0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ea7b374f1036138e8d15ba0f059b9dfc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"171a4fa5-3236-4d65-b75e-ea04869365e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.3788795} authorization-1 | {"client_addr":"127.0.0.1:45820","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.917489,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"ea7b374f1036138e8d15ba0f059b9dfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.552646,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","rebac_allow":false,"scope_allow":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":"e97a84d0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.046354434Z"}]},"request_id":"35e1eee7-64b6-4e02-8887-0d43b65e36f5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.383851} 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":"ea7b374f1036138e8d15ba0f059b9dfc"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling 200 13ms","method":"POST","requestID":"e97a84d0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Building connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"6c08c64c-97e0-4b81-8286-12aa08c6f407"},{"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":"6d6b4e24-afd7-4708-9a08-6c2c57170171"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d28ccf96-7e7e-4104-a1e8-1e382ada940d"}]},"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/e4a889e7-d937-43bb-b171-bb63c95248e4"},{"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/e2cad36e-0087-40d6-8b5f-82598311b0de"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} gateway-1 | {"time_local":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e2cad36e-0087-40d6-8b5f-82598311b0de? 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":"ea7b374f1036138e8d15ba0f059b9dfc"} device-1 | {"level":"info","message":"GET /devices/e2cad36e-0087-40d6-8b5f-82598311b0de? 200 13ms","method":"GET","requestID":"ea7b374f1036138e8d15ba0f059b9dfc","responseTime":13,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.85205,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI","level":"info","message":"auth send jwt"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"448ba4f81b7347c86afec6c0af399d74","responseTime":4,"status":200,"url":"/auth"} 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":"e97d1ce0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705343,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383273,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3M30.-l9HTML40oWo4F4JXZptFvXwtxRRka8o-RJ5i1QTgUI"} 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":"448ba4f81b7347c86afec6c0af399d74"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a8ca7b62-0b99-4f5b-88d3-a389d332838b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.4045837} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d18f3cb-bd92-4b3f-aff5-57865950b863","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.4048407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:11.083217498Z"}]},"request_id":"1bf0ea64-c2d3-4b6a-bea7-106b40262086","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.4055917} 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":"e97d1ce0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"448ba4f81b7347c86afec6c0af399d74"},"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":"14/Jun/2024:16:41:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e4a889e7-d937-43bb-b171-bb63c95248e4? 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":"448ba4f81b7347c86afec6c0af399d74"} device-1 | {"level":"info","message":"GET /devices/e4a889e7-d937-43bb-b171-bb63c95248e4? 200 16ms","method":"GET","requestID":"448ba4f81b7347c86afec6c0af399d74","responseTime":16,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4?"} 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/ddc20a22-147f-4643-bc71-c47391c61d35'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35'"} 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":"e97d1ce0-2a6c-11ef-91df-9f2f583abbec","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60818a20-1596-4ef3-bdb7-bcf5e3a9fb2f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.4533675} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.524106,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"e985f680-2a6c-11ef-91df-9f2f583abbec"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling 200 10ms","method":"POST","requestID":"e985f680-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"495a576e-ec03-4f09-b3c9-33bd4fdbdcf7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383273.4662664} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.068842,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","rebac_allow":false,"scope_allow":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":"e987f250-2a6c-11ef-91df-9f2f583abbec"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling 200 10ms","method":"POST","requestID":"e987f250-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","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/ddc20a22-147f-4643-bc71-c47391c61d35' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","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":"8fba1ca1bdae4b42cabcadf2a0e0dcb4","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/e4a889e7-d937-43bb-b171-bb63c95248e4"},{"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/e2cad36e-0087-40d6-8b5f-82598311b0de"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"8fba1ca1bdae4b42cabcadf2a0e0dcb4","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"8fba1ca1bdae4b42cabcadf2a0e0dcb4"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de'"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","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/ddc20a22-147f-4643-bc71-c47391c61d35' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","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":"2964556cd55910b445cbd064324f7827","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4"},{"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/e2cad36e-0087-40d6-8b5f-82598311b0de"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fddc20a22-147f-4643-bc71-c47391c61d35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f8a2f8e-eeec-4a9d-bea9-d232afbc0b20","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.6107771} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.879581,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35","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":"eace7c10-2a6c-11ef-91df-9f2f583abbec"},"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/ddc20a22-147f-4643-bc71-c47391c61d35 200 18ms","method":"GET","requestID":"eace7c10-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"2964556cd55910b445cbd064324f7827","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"2964556cd55910b445cbd064324f7827"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"651a8eec-9bce-4a06-965f-72e0e5569c68","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.6512935} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.037775,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","rebac_allow":false,"scope_allow":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":"ead50bc0-2a6c-11ef-91df-9f2f583abbec"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling 200 15ms","method":"POST","requestID":"ead50bc0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c66fe34-0a98-4483-831e-b36aa53e39d8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.670609} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.159096,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","rebac_allow":false,"scope_allow":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":"ead7cae0-2a6c-11ef-91df-9f2f583abbec"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling 200 15ms","method":"POST","requestID":"ead7cae0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5dae59d75cb5798aff3a7661d18c0340","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/baa05593-8635-4720-82fd-3798f7acd6ab"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.268085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383275,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo"} 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":"5dae59d75cb5798aff3a7661d18c0340"},"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/baa05593-8635-4720-82fd-3798f7acd6ab"} experiment-1 | {"level":"info","message":"GET /experiments/baa05593-8635-4720-82fd-3798f7acd6ab 200 15ms","method":"GET","requestID":"5dae59d75cb5798aff3a7661d18c0340","responseTime":15,"status":200,"url":"/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"} gateway-1 | {"time_local":"14/Jun/2024:16:41:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/baa05593-8635-4720-82fd-3798f7acd6ab 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":"5dae59d75cb5798aff3a7661d18c0340"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"952032e8c93b1c1835367ad982cd8ed6","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/baa05593-8635-4720-82fd-3798f7acd6ab"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.222928,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383275,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo"} 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":"952032e8c93b1c1835367ad982cd8ed6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.274715,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383275,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo"} 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":"eae2a050-2a6c-11ef-91df-9f2f583abbec"},"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/ddc20a22-147f-4643-bc71-c47391c61d35' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fddc20a22-147f-4643-bc71-c47391c61d35': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fddc20a22-147f-4643-bc71-c47391c61d35","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"c5635b53-d308-422c-a35f-92dfda291695","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.7612689} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2b981218b29f22a548324e7ab45482e1","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f3bfbc1-a767-4015-b11c-565aee07e3b2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.7620213} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eae2a050-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/e4a889e7-d937-43bb-b171-bb63c95248e4"},{"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/e2cad36e-0087-40d6-8b5f-82598311b0de"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0fe230f4f503af4e32dbac846b322d5e","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/e4a889e7-d937-43bb-b171-bb63c95248e4"},{"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/e2cad36e-0087-40d6-8b5f-82598311b0de"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ddc20a22-147f-4643-bc71-c47391c61d35","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/ddc20a22-147f-4643-bc71-c47391c61d35 204 94ms","method":"DELETE","requestID":"eae2a050-2a6c-11ef-91df-9f2f583abbec","responseTime":94,"status":204,"url":"/peerconnections/ddc20a22-147f-4643-bc71-c47391c61d35"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4a889e7-d937-43bb-b171-bb63c95248e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"adb8b234-27c1-44ed-b26a-531cd172e41a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.8613539} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.884822,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4a889e7-d937-43bb-b171-bb63c95248e4","object_type":"device","rebac_allow":false,"scope_allow":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":"eaf516e0-2a6c-11ef-91df-9f2f583abbec"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling 200 15ms","method":"POST","requestID":"eaf516e0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/e4a889e7-d937-43bb-b171-bb63c95248e4/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbaa05593-8635-4720-82fd-3798f7acd6ab': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbaa05593-8635-4720-82fd-3798f7acd6ab","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"0bb3f288-241e-4256-80e5-1014d507a455","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.8713846} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b29fdcae-f53d-4bd6-9ea7-9c48d975b91c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.8718529} 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":"952032e8c93b1c1835367ad982cd8ed6"},"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:57580","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2cad36e-0087-40d6-8b5f-82598311b0de","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e164046-7bbf-4ff9-97ae-9b77196c469b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.8794813} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.782758,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e2cad36e-0087-40d6-8b5f-82598311b0de","object_type":"device","rebac_allow":false,"scope_allow":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":"eaf7d600-2a6c-11ef-91df-9f2f583abbec"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling 200 14ms","method":"POST","requestID":"eaf7d600-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/e2cad36e-0087-40d6-8b5f-82598311b0de/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/baa05593-8635-4720-82fd-3798f7acd6ab"} gateway-1 | {"time_local":"14/Jun/2024:16:41:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/baa05593-8635-4720-82fd-3798f7acd6ab HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.227","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"952032e8c93b1c1835367ad982cd8ed6"} gateway-1 | {"time_local":"14/Jun/2024:16:41:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3230","request_time":"4.307","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1d0389a96d96e460aa3ed61cc78f6a29"} experiment-1 | {"level":"info","message":"DELETE /experiments/baa05593-8635-4720-82fd-3798f7acd6ab 204 222ms","method":"DELETE","requestID":"952032e8c93b1c1835367ad982cd8ed6","responseTime":222,"status":204,"url":"/experiments/baa05593-8635-4720-82fd-3798f7acd6ab"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 177ms","method":"POST","requestID":"2b981218b29f22a548324e7ab45482e1","responseTime":177,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.183","http_referrer":"","http_user_agent":"node-fetch","requestID":"2b981218b29f22a548324e7ab45482e1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3fac0c27cc276a11506acd95643619ce","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 181ms","method":"POST","requestID":"0fe230f4f503af4e32dbac846b322d5e","responseTime":181,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"0fe230f4f503af4e32dbac846b322d5e"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:41:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2742","request_time":"2.808","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f8589d9b52966147ac5cfd16aac15b15"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.983302,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383275,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3NX0.B41FLg9S28yELSFvbbF4GoNn1ta7kJYhkyil4DzRwKo"} 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":"3fac0c27cc276a11506acd95643619ce"},"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/e4a889e7-d937-43bb-b171-bb63c95248e4' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3d8ec9ce-3560-4bae-8439-cfac7f9f8d6d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.9738498} 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":"3fac0c27cc276a11506acd95643619ce"},"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/e2cad36e-0087-40d6-8b5f-82598311b0de' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6cf1e3dc-3768-418a-b15a-bd6796f9ba97","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.980137} 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":"3fac0c27cc276a11506acd95643619ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ede60a20-0a14-4074-92f5-4044f3bc68cf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.9894085} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d30e219-bbe8-45cf-8b69-d45e253d0512","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.9895551} 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":"3fac0c27cc276a11506acd95643619ce"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:15.989379390Z"}]},"request_id":"ade42e69-8182-40c6-84bd-bc95d8c3d666","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383275.994921} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3fac0c27cc276a11506acd95643619ce"},"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":"14/Jun/2024:16:41:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3fac0c27cc276a11506acd95643619ce"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"3fac0c27cc276a11506acd95643619ce","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"673b3c1c59ac0964fa379f27f7aecc90","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.851776,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383276,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ"} 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":"673b3c1c59ac0964fa379f27f7aecc90"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2c3dd458-a1dc-4c11-8574-2db6763d9dc5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.0243156} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"673b3c1c59ac0964fa379f27f7aecc90"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8f37137-0894-49db-ad36-84e56174fb9a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.030234} 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":"673b3c1c59ac0964fa379f27f7aecc90"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"b10bb19f-74b3-4dd2-a127-90d45032f138","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.041513} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b1a9952-3ac9-4f80-9b11-39884c2a547f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.0416412} 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":"673b3c1c59ac0964fa379f27f7aecc90"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"372728a4-e3ff-4215-ba53-1178869f3b67","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.0470636} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"673b3c1c59ac0964fa379f27f7aecc90"},"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":"14/Jun/2024:16:41:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"673b3c1c59ac0964fa379f27f7aecc90"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"673b3c1c59ac0964fa379f27f7aecc90","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"13c4a43f0272f0b0fc17a70a2f93461f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.096297,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383276,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ"} 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":"13c4a43f0272f0b0fc17a70a2f93461f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"aa611834-f517-483e-a114-13f05a5e41e8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.5420232} 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":"13c4a43f0272f0b0fc17a70a2f93461f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39922055-b7fc-4787-bdb1-db663859e979","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.547626} 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":"13c4a43f0272f0b0fc17a70a2f93461f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"ecb3f143-0bb3-49d9-8c20-89978eded897","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383276.5583131} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"13c4a43f0272f0b0fc17a70a2f93461f"},"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":"14/Jun/2024:16:41:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9e521457-636d-4362-8b4c-1f07e5af1a90 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.035","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"13c4a43f0272f0b0fc17a70a2f93461f"} device-1 | {"level":"info","message":"PATCH /devices/9e521457-636d-4362-8b4c-1f07e5af1a90 200 29ms","method":"PATCH","requestID":"13c4a43f0272f0b0fc17a70a2f93461f","responseTime":29,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"822a5a90cbed3ceaee476d9b7e3484c1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.22666,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383276,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3Nn0.Q22tkGeOQKDlyBujSwKnDbNZTdJ-9qvb-I4jixp7TzQ"} 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":"822a5a90cbed3ceaee476d9b7e3484c1"},"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":"14/Jun/2024:16:41:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9e521457-636d-4362-8b4c-1f07e5af1a90/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"822a5a90cbed3ceaee476d9b7e3484c1"} device-1 | {"level":"info","message":"POST /devices/9e521457-636d-4362-8b4c-1f07e5af1a90/websocket 200 18ms","method":"POST","requestID":"822a5a90cbed3ceaee476d9b7e3484c1","responseTime":18,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90' 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":"bd0cc8786d72517c8f96e615114359a5","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/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":"bd0cc8786d72517c8f96e615114359a5"} device-1 | {"level":"info","message":"OPTIONS /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/websocket 200 1ms","method":"OPTIONS","requestID":"bd0cc8786d72517c8f96e615114359a5","responseTime":1,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b3cc856ee79825b6bae174b90857f9c8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.201093,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"b3cc856ee79825b6bae174b90857f9c8"},"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":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b3cc856ee79825b6bae174b90857f9c8"} device-1 | {"level":"info","message":"POST /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/websocket 200 23ms","method":"POST","requestID":"b3cc856ee79825b6bae174b90857f9c8","responseTime":23,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a91a165866b6167ff54b42f401919529","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.912078,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"a91a165866b6167ff54b42f401919529"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:15.989379390Z"}]},"request_id":"efb2b23f-f52a-4676-b0f8-8345c4504cc8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.0859241} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a91a165866b6167ff54b42f401919529"},"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":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 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":"a91a165866b6167ff54b42f401919529"} device-1 | {"level":"info","message":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 200 16ms","method":"GET","requestID":"a91a165866b6167ff54b42f401919529","responseTime":16,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"327164f8c6284630ed283a2c2bc68212","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.183883,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"327164f8c6284630ed283a2c2bc68212"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"95009ba6-c2bc-495a-a8f6-b92a5e2916ac","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.111328} 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":"327164f8c6284630ed283a2c2bc68212"},"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":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? 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":"327164f8c6284630ed283a2c2bc68212"} device-1 | {"level":"info","message":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? 200 20ms","method":"GET","requestID":"327164f8c6284630ed283a2c2bc68212","responseTime":20,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7f1eb9134cd23e400bc08dec1dc7bbb9","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:57580","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.241932,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"7f1eb9134cd23e400bc08dec1dc7bbb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"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:57580","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.156534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"ec560670-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.942941,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"ec565490-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:15.989379390Z"}]},"request_id":"645adcd6-94ac-4b6e-ba4e-eff46edd8836","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.17945} 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":"ec560670-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"e9e3c809-cd32-4727-8746-da54ce682112","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.1852682} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ec565490-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 200 20ms","method":"GET","requestID":"ec560670-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? 200 23ms","method":"GET","requestID":"ec565490-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"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:57580","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.334207,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"ec623b70-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.41332,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"ec628990-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f915f442-a359-474b-b6da-e08f32d0a82d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2650545} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.558943,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","rebac_allow":false,"scope_allow":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":"ec62fec0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:15.989379390Z"}]},"request_id":"ce0a8a87-0dec-45c6-a22d-4f76bf90796e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2667696} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"bc681c17-3026-4560-af94-7d9e5e8299ff","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2688057} 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":"ec623b70-2a6c-11ef-91df-9f2f583abbec"},"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 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":"ec628990-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa885d583-9878-4c8d-b0bd-f6f7b9ccf17d#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa885d583-9878-4c8d-b0bd-f6f7b9ccf17d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a462c925-9ba6-46f6-8f6f-f7369d3db33b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.278554} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"416d6bd4-6a9e-4856-bf38-f3d9cd0653da","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2791367} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"7f1eb9134cd23e400bc08dec1dc7bbb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"POST /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling 200 29ms","method":"POST","requestID":"ec62fec0-2a6c-11ef-91df-9f2f583abbec","responseTime":29,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 200 37ms","method":"GET","requestID":"ec623b70-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? 200 36ms","method":"GET","requestID":"ec628990-2a6c-11ef-91df-9f2f583abbec","responseTime":36,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fde43974-c7c6-4a39-a0a6-86f4fb851e3f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2953622} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.66602,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} gateway-1 | {"time_local":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7f1eb9134cd23e400bc08dec1dc7bbb9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"7f1eb9134cd23e400bc08dec1dc7bbb9","responseTime":169,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","rebac_allow":false,"scope_allow":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":"ec687d00-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cc01ef7f-4279-45e1-9400-eeaaccd5da51","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.2983634} authorization-1 | {"client_addr":"127.0.0.1:44258","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.865675,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","rebac_allow":false,"scope_allow":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":"ec68f230-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"52685549e3fce4a4aa6ce3fc5ec4f298","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling 200 15ms","method":"POST","requestID":"ec687d00-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling 200 16ms","method":"POST","requestID":"ec68f230-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.872397,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"52685549e3fce4a4aa6ce3fc5ec4f298"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:15.989379390Z"}]},"request_id":"24ef421b-d119-4e02-bade-8c7c7daf517f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.3149452} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"43257ee0-e705-47da-8a7c-07d0500c854f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.3150723} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"52685549e3fce4a4aa6ce3fc5ec4f298"},"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:57580","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.651541,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","rebac_allow":false,"scope_allow":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":"ec6bd860-2a6c-11ef-91df-9f2f583abbec"},"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":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 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":"52685549e3fce4a4aa6ce3fc5ec4f298"} device-1 | {"level":"info","message":"GET /devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9? 200 16ms","method":"GET","requestID":"52685549e3fce4a4aa6ce3fc5ec4f298","responseTime":16,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling 200 13ms","method":"POST","requestID":"ec6bd860-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"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":"a25397a1-45b6-4c9a-8835-4315f2a27700"},{"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":"013ba47f-9022-4322-a2b7-b5949bdf50dc"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"be1b710c-d7b5-4494-9663-e72d8ea9be79"}]},"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/9e521457-636d-4362-8b4c-1f07e5af1a90"},{"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b9a7fe0fdb7ee96c19360a54b4cc3526","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.679566,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"ec6e4960-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718609,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383278,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI3OH0.8rWhmlAYdtkHvrpUxeGegFBH53HGCbLWWtWQCMB6Uqo"} 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":"b9a7fe0fdb7ee96c19360a54b4cc3526"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:16.041482142Z"}]},"request_id":"b93724ef-7642-4e50-be9d-d95f5a3f9308","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.338481} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b9a7fe0fdb7ee96c19360a54b4cc3526"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"869f0909-684d-4d57-98ae-5f124e42601b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.3421576} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a8decd6-e272-4fa3-89b0-78815fe41d88","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.3423166} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b9a7fe0fdb7ee96c19360a54b4cc3526"} device-1 | {"level":"info","message":"GET /devices/9e521457-636d-4362-8b4c-1f07e5af1a90? 200 13ms","method":"GET","requestID":"b9a7fe0fdb7ee96c19360a54b4cc3526","responseTime":13,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90?"} 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":"ec6e4960-2a6c-11ef-91df-9f2f583abbec"},"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/abee9389-f305-4f78-8ef2-a25c5b5c9e63'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63'"} 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 28ms","method":"POST","requestID":"ec6e4960-2a6c-11ef-91df-9f2f583abbec","responseTime":28,"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/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0605fff6-62b5-4d8c-ac0a-5e9750dc9f69","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.3874307} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.865333,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","rebac_allow":false,"scope_allow":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":"ec76d4e0-2a6c-11ef-91df-9f2f583abbec"},"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling 200 12ms","method":"POST","requestID":"ec76d4e0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9'"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee7f6039-7c9b-46ad-ae81-416ce33b665e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383278.4030886} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.249819,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ec791ed0-2a6c-11ef-91df-9f2f583abbec"},"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/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling 200 11ms","method":"POST","requestID":"ec791ed0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","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/abee9389-f305-4f78-8ef2-a25c5b5c9e63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","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":"64bb5ab51109c1a1fdc564a409016314","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/9e521457-636d-4362-8b4c-1f07e5af1a90"},{"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"64bb5ab51109c1a1fdc564a409016314","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"64bb5ab51109c1a1fdc564a409016314"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9'"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","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/abee9389-f305-4f78-8ef2-a25c5b5c9e63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","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":"d66007d6835ecafc32236fbcd607e493","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90"},{"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fabee9389-f305-4f78-8ef2-a25c5b5c9e63","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e36fcde2-e81b-467e-bab0-1c551730c2c1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.5164635} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.225571,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63","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":"edbb89e0-2a6c-11ef-91df-9f2f583abbec"},"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/abee9389-f305-4f78-8ef2-a25c5b5c9e63 200 11ms","method":"GET","requestID":"edbb89e0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"d66007d6835ecafc32236fbcd607e493","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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":"d66007d6835ecafc32236fbcd607e493"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9fd7ecb7-bdc1-4ce8-b295-4a22e064b87c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.5481632} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.200803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","rebac_allow":false,"scope_allow":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":"edc06be0-2a6c-11ef-91df-9f2f583abbec"},"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/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling 200 12ms","method":"POST","requestID":"edc06be0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e6dda9c-909b-4895-9d7e-8c1248145d23","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.563841} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.345903,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","rebac_allow":false,"scope_allow":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":"edc2b5d0-2a6c-11ef-91df-9f2f583abbec"},"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling 200 12ms","method":"POST","requestID":"edc2b5d0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"21c1c7e3f37333a5c1266d1d8d280fec","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.912815,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383280,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ"} 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":"21c1c7e3f37333a5c1266d1d8d280fec"},"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/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} gateway-1 | {"time_local":"14/Jun/2024:16:41:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d 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":"21c1c7e3f37333a5c1266d1d8d280fec"} experiment-1 | {"level":"info","message":"GET /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d 200 12ms","method":"GET","requestID":"21c1c7e3f37333a5c1266d1d8d280fec","responseTime":12,"status":200,"url":"/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a7fba5260214a4d189ceb361925bfe0f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.290803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383280,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ"} 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":"a7fba5260214a4d189ceb361925bfe0f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.937513,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383280,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ"} 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":"edcd8b40-2a6c-11ef-91df-9f2f583abbec"},"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/abee9389-f305-4f78-8ef2-a25c5b5c9e63' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fabee9389-f305-4f78-8ef2-a25c5b5c9e63': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fabee9389-f305-4f78-8ef2-a25c5b5c9e63","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"41a6d91a-5c23-4a41-899a-555d71ceadc5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.6496391} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d5a5abaf0ebf1a6f361933ad21add6a6","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9de5273-5e8f-49d4-b409-2f7ff5de7f64","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.650067} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4ebfdcac4f2d636a73a14559373d3e18","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90"},{"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"edcd8b40-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/9e521457-636d-4362-8b4c-1f07e5af1a90"},{"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"abee9389-f305-4f78-8ef2-a25c5b5c9e63","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/abee9389-f305-4f78-8ef2-a25c5b5c9e63 204 46ms","method":"DELETE","requestID":"edcd8b40-2a6c-11ef-91df-9f2f583abbec","responseTime":46,"status":204,"url":"/peerconnections/abee9389-f305-4f78-8ef2-a25c5b5c9e63"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e521457-636d-4362-8b4c-1f07e5af1a90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"983ffd38-0941-4ab6-9f75-0ba1cc3ba00a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.7068315} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.665382,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e521457-636d-4362-8b4c-1f07e5af1a90","object_type":"device","rebac_allow":false,"scope_allow":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":"edd839a0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa885d583-9878-4c8d-b0bd-f6f7b9ccf17d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa885d583-9878-4c8d-b0bd-f6f7b9ccf17d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"0dc65bdf-a263-405a-9e88-353c4ebfd3f5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.7128875} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86bf223f-f7ed-402a-a16b-51a54777344f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.7131026} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling 200 15ms","method":"POST","requestID":"edd839a0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/9e521457-636d-4362-8b4c-1f07e5af1a90/signaling"} 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":"a7fba5260214a4d189ceb361925bfe0f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e5d4ad2-06b0-4583-98b4-dcc833e62381","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.7218335} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.994444,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9","object_type":"device","rebac_allow":false,"scope_allow":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":"eddad1b0-2a6c-11ef-91df-9f2f583abbec"},"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling 200 13ms","method":"POST","requestID":"eddad1b0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} gateway-1 | {"time_local":"14/Jun/2024:16:41:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d 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":"a7fba5260214a4d189ceb361925bfe0f"} experiment-1 | {"level":"info","message":"DELETE /experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d 204 173ms","method":"DELETE","requestID":"a7fba5260214a4d189ceb361925bfe0f","responseTime":173,"status":204,"url":"/experiments/a885d583-9878-4c8d-b0bd-f6f7b9ccf17d"} gateway-1 | {"time_local":"14/Jun/2024:16:41:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3228","request_time":"4.200","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e7804fb08646e93e84aa93f487218cf9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"d5a5abaf0ebf1a6f361933ad21add6a6","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.143","http_referrer":"","http_user_agent":"node-fetch","requestID":"d5a5abaf0ebf1a6f361933ad21add6a6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"4ebfdcac4f2d636a73a14559373d3e18","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"4ebfdcac4f2d636a73a14559373d3e18"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"93bca4a15d3b20906a810133f24ee4a1","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/9e521457-636d-4362-8b4c-1f07e5af1a90' closed"} gateway-1 | {"time_local":"14/Jun/2024:16:41:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2742","request_time":"2.748","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3b30ba33e94e5452bff86dcb1305783b"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.995127,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383280,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ"} 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":"93bca4a15d3b20906a810133f24ee4a1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e71f0414-fb3f-4ab1-980d-a171bbabee69","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8207097} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"93bca4a15d3b20906a810133f24ee4a1"},"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/52e3e8ca-71c3-48be-8e4f-0d629cc5ada9' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aa5f48ce-584e-4f19-9313-6878267923c2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8276408} 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":"93bca4a15d3b20906a810133f24ee4a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"911bbef0-5461-41b7-ad92-34196c21404c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8415124} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a75ddbe-e24f-496f-a5ef-858fafb5e7ba","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8415856} 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":"93bca4a15d3b20906a810133f24ee4a1"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"dc6cbb0a-7345-4bc6-a8a7-46badb9e5fda","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8458195} 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":"93bca4a15d3b20906a810133f24ee4a1"},"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":"14/Jun/2024:16:41:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"93bca4a15d3b20906a810133f24ee4a1"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"93bca4a15d3b20906a810133f24ee4a1","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fa3dacff16c02256de25b01af9a04710","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.748736,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383280,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MH0.xwFZeAzpzeDsbnERcG406uB8noGsR91Cy-dQaemrEZQ"} 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":"fa3dacff16c02256de25b01af9a04710"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"91d8ce2d-1e48-41c8-915c-f4a5a3428b9a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8712983} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa3dacff16c02256de25b01af9a04710"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9171286c-2f88-415d-ba1a-cb9ea8818f87","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8764234} 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":"fa3dacff16c02256de25b01af9a04710"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"9da3b187-8a98-4283-9e6d-6e46615b6276","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.887218} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4bfb869-4d08-4118-8343-5aa553be1640","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.88748} 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":"fa3dacff16c02256de25b01af9a04710"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.887183196Z"}]},"request_id":"75ce083a-7681-4df8-a0b1-233f3e0632d6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383280.8913865} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa3dacff16c02256de25b01af9a04710"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"fa3dacff16c02256de25b01af9a04710","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:20 +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":"fa3dacff16c02256de25b01af9a04710"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MX0.u6fcBi2rfS-GbxFNZr5oaiNxFGPt-UZwx2OWbRzpqRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0da1e76591cc80f187814547ee90d4b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:21Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.48938,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383281,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MX0.u6fcBi2rfS-GbxFNZr5oaiNxFGPt-UZwx2OWbRzpqRk"} 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":"0da1e76591cc80f187814547ee90d4b3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"bb31dbf3-5670-48fd-a83d-6d89324d7738","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383281.3903742} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0da1e76591cc80f187814547ee90d4b3"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0ca9335-ca03-4179-b552-47550ab8f86e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383281.398415} 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":"0da1e76591cc80f187814547ee90d4b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"3d48a4f0-bbd2-4843-911b-ff3c826399f0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383281.4115238} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0da1e76591cc80f187814547ee90d4b3"},"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":"14/Jun/2024:16:41:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e524b523-4d79-4c5f-8509-2201c4600130 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":"0da1e76591cc80f187814547ee90d4b3"} device-1 | {"level":"info","message":"PATCH /devices/e524b523-4d79-4c5f-8509-2201c4600130 200 40ms","method":"PATCH","requestID":"0da1e76591cc80f187814547ee90d4b3","responseTime":40,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MX0.u6fcBi2rfS-GbxFNZr5oaiNxFGPt-UZwx2OWbRzpqRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dc5d6aa5530a52022f04999fbb1bdcee","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:21Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.352526,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383281,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4MX0.u6fcBi2rfS-GbxFNZr5oaiNxFGPt-UZwx2OWbRzpqRk"} 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":"dc5d6aa5530a52022f04999fbb1bdcee"},"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":"14/Jun/2024:16:41:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e524b523-4d79-4c5f-8509-2201c4600130/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":"dc5d6aa5530a52022f04999fbb1bdcee"} device-1 | {"level":"info","message":"POST /devices/e524b523-4d79-4c5f-8509-2201c4600130/websocket 200 21ms","method":"POST","requestID":"dc5d6aa5530a52022f04999fbb1bdcee","responseTime":21,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130' 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":"de8fbfdeb0e977dad890e0de105d39a4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/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":"de8fbfdeb0e977dad890e0de105d39a4"} device-1 | {"level":"info","message":"OPTIONS /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/websocket 200 2ms","method":"OPTIONS","requestID":"de8fbfdeb0e977dad890e0de105d39a4","responseTime":2,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Mn0.AzVompzgiHt27kNBslhPoeyXA5oPTeGD-i-3Y-VONvI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7f694c47da82cb2079e07f2875aed699","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:22Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.159441,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383282,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Mn0.AzVompzgiHt27kNBslhPoeyXA5oPTeGD-i-3Y-VONvI"} 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":"7f694c47da82cb2079e07f2875aed699"},"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/f4f34e33-b603-4ec3-ab44-92c983ddb636/websocket 200 22ms","method":"POST","requestID":"7f694c47da82cb2079e07f2875aed699","responseTime":22,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7f694c47da82cb2079e07f2875aed699"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Mn0.AzVompzgiHt27kNBslhPoeyXA5oPTeGD-i-3Y-VONvI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a51c35d861b2cdabde50846cb2afaaf6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:22Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.280618,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383282,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Mn0.AzVompzgiHt27kNBslhPoeyXA5oPTeGD-i-3Y-VONvI"} 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":"a51c35d861b2cdabde50846cb2afaaf6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"478918f9-0e48-46a4-a18e-96f2d29b4e66","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383282.9916177} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a51c35d861b2cdabde50846cb2afaaf6"},"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":"14/Jun/2024:16:41:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e524b523-4d79-4c5f-8509-2201c4600130? 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":"a51c35d861b2cdabde50846cb2afaaf6"} device-1 | {"level":"info","message":"GET /devices/e524b523-4d79-4c5f-8509-2201c4600130? 200 19ms","method":"GET","requestID":"a51c35d861b2cdabde50846cb2afaaf6","responseTime":19,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"373d9d7dc23efaed901a88dd316b813d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.315661,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"373d9d7dc23efaed901a88dd316b813d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.887183196Z"}]},"request_id":"8f29106f-7ff9-4d47-a998-387d0c8383cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.0185854} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"373d9d7dc23efaed901a88dd316b813d"},"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":"14/Jun/2024:16:41:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 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":"373d9d7dc23efaed901a88dd316b813d"} device-1 | {"level":"info","message":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 200 19ms","method":"GET","requestID":"373d9d7dc23efaed901a88dd316b813d","responseTime":19,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0954103085642bcb22a0da7068c3afd5","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:57580","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.466258,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"0954103085642bcb22a0da7068c3afd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"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:57580","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.103981,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"ef431440-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.410509,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"ef436260-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"c9bacd3c-01b0-4a9e-a75e-a2680ec7bd63","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.08901} 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":"ef431440-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.887183196Z"}]},"request_id":"c7717de7-178d-4548-9118-aafee777a488","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.0948527} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef436260-2a6c-11ef-91df-9f2f583abbec"},"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/e524b523-4d79-4c5f-8509-2201c4600130? 200 21ms","method":"GET","requestID":"ef431440-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 200 24ms","method":"GET","requestID":"ef436260-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"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:57580","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238724,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"ef4f7050-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.916026,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"ef4fbe70-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a87cbe26-4e6d-48d7-9dad-c7e2eec43066","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.170969} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.127752,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","rebac_allow":false,"scope_allow":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":"ef5033a0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.887183196Z"}]},"request_id":"30710ecb-9fc6-4fd3-884a-be484a54142b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.1758099} 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":"ef4fbe70-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"f8daa943-3fa8-487f-a91a-4d7a2ec04193","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.1797385} 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":"ef4f7050-2a6c-11ef-91df-9f2f583abbec"},"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/e524b523-4d79-4c5f-8509-2201c4600130/signaling 200 22ms","method":"POST","requestID":"ef5033a0-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fec133702-4cc3-439a-858f-db9ded667526#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fec133702-4cc3-439a-858f-db9ded667526","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d96b9b31-1a87-41b0-b87a-6dd04a2642b4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.1931682} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0fc51265-63b8-4c14-95a8-fa364ba48b4c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.1937592} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 200 38ms","method":"GET","requestID":"ef4fbe70-2a6c-11ef-91df-9f2f583abbec","responseTime":38,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"0954103085642bcb22a0da7068c3afd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} device-1 | {"level":"info","message":"GET /devices/e524b523-4d79-4c5f-8509-2201c4600130? 200 41ms","method":"GET","requestID":"ef4f7050-2a6c-11ef-91df-9f2f583abbec","responseTime":41,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"908df511-c3e9-4241-a12f-658a762b9772","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.199191} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.302781,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","rebac_allow":false,"scope_allow":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":"ef54c780-2a6c-11ef-91df-9f2f583abbec"},"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/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling 200 12ms","method":"POST","requestID":"ef54c780-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0954103085642bcb22a0da7068c3afd5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 178ms","method":"POST","requestID":"0954103085642bcb22a0da7068c3afd5","responseTime":178,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9789302c-5f32-47b4-8bad-5deefb329cfb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2109723} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.381843,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","rebac_allow":false,"scope_allow":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":"ef56c350-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"025f68e2fed9d631fcee3da474a96f1b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling 200 13ms","method":"POST","requestID":"ef56c350-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.081987,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"025f68e2fed9d631fcee3da474a96f1b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11a369b7-0175-48c6-b882-d2eb24e2a4a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2274911} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.49581,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","rebac_allow":false,"scope_allow":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":"ef593450-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.841482976Z"}]},"request_id":"42c87b39-3e31-4e1f-a760-27e42d3e4ce7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2333014} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling 200 13ms","method":"POST","requestID":"ef593450-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/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":"025f68e2fed9d631fcee3da474a96f1b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"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":"f68efc94-fbfb-403f-8a83-a81def02b8e7"},{"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":"13d1995e-01b6-45d8-a144-805983e9e42c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bd0cac4a-0e69-4a7c-89f4-bdf59e41611b"}]},"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/f4f34e33-b603-4ec3-ab44-92c983ddb636"},{"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/e524b523-4d79-4c5f-8509-2201c4600130"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e524b523-4d79-4c5f-8509-2201c4600130? 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":"025f68e2fed9d631fcee3da474a96f1b"} device-1 | {"level":"info","message":"GET /devices/e524b523-4d79-4c5f-8509-2201c4600130? 200 24ms","method":"GET","requestID":"025f68e2fed9d631fcee3da474a96f1b","responseTime":24,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":3.091212,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"ef5ba550-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8dc07f72d5706dfb75d1567554be55cd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.019996,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383283,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4M30.mVc962TQZANlgiw4StGzwPO0lSGJzihX38VmMBRfdro"} 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":"8dc07f72d5706dfb75d1567554be55cd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7584b2f4-3464-48b5-93c6-ec320b78769c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2590675} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b3cf359-2459-40d2-85eb-90680c258324","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2592988} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:20.887183196Z"}]},"request_id":"773a7d50-a813-4bcb-bd83-30c6bde4f948","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.2602484} 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":"ef5ba550-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8dc07f72d5706dfb75d1567554be55cd"},"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":"14/Jun/2024:16:41:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 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":"8dc07f72d5706dfb75d1567554be55cd"} device-1 | {"level":"info","message":"GET /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636? 200 18ms","method":"GET","requestID":"8dc07f72d5706dfb75d1567554be55cd","responseTime":18,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636?"} 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/03d2db87-dcea-4687-9c38-65e669f80fcc'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 39ms","method":"POST","requestID":"ef5ba550-2a6c-11ef-91df-9f2f583abbec","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"08da63ef-0df5-46f5-a929-35d1d6b0f967","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.315284} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.978292,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ef66a1d0-2a6c-11ef-91df-9f2f583abbec"},"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/e524b523-4d79-4c5f-8509-2201c4600130/signaling 200 12ms","method":"POST","requestID":"ef66a1d0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c521c68-8084-4dd5-ae44-329b88d6113b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383283.3263044} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.164321,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","rebac_allow":false,"scope_allow":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":"ef689da0-2a6c-11ef-91df-9f2f583abbec"},"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/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling 200 8ms","method":"POST","requestID":"ef689da0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","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/03d2db87-dcea-4687-9c38-65e669f80fcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636'"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7c022eee9d8b01afbcbe9517c4c50b1e","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/f4f34e33-b603-4ec3-ab44-92c983ddb636"},{"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/e524b523-4d79-4c5f-8509-2201c4600130"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"7c022eee9d8b01afbcbe9517c4c50b1e","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"7c022eee9d8b01afbcbe9517c4c50b1e"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","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/03d2db87-dcea-4687-9c38-65e669f80fcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","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":"267f8cf49b7d54bdc3f08782ec0e8a80","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/f4f34e33-b603-4ec3-ab44-92c983ddb636"},{"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/e524b523-4d79-4c5f-8509-2201c4600130"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03d2db87-dcea-4687-9c38-65e669f80fcc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27f9e04c-dd46-4ccd-8c72-32e1c3f5c723","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.4027536} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.094156,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc","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":"f0a56360-2a6c-11ef-91df-9f2f583abbec"},"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/03d2db87-dcea-4687-9c38-65e669f80fcc 200 8ms","method":"GET","requestID":"f0a56360-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"267f8cf49b7d54bdc3f08782ec0e8a80","responseTime":34,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"267f8cf49b7d54bdc3f08782ec0e8a80"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"36647fb5-7974-4f19-bfe4-0cc7e99114cf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.4371724} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.733975,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","rebac_allow":false,"scope_allow":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":"f0aa4560-2a6c-11ef-91df-9f2f583abbec"},"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/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling 200 13ms","method":"POST","requestID":"f0aa4560-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e1e5199-10a1-44e8-8d88-68af2164bad8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.452851} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.633977,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","rebac_allow":false,"scope_allow":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":"f0acb660-2a6c-11ef-91df-9f2f583abbec"},"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/e524b523-4d79-4c5f-8509-2201c4600130/signaling 200 13ms","method":"POST","requestID":"f0acb660-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"38c59ef27ef013d947a1988cb0bef8c9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ec133702-4cc3-439a-858f-db9ded667526"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.260364,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383285,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU"} 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":"38c59ef27ef013d947a1988cb0bef8c9"},"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/ec133702-4cc3-439a-858f-db9ded667526"} gateway-1 | {"time_local":"14/Jun/2024:16:41:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ec133702-4cc3-439a-858f-db9ded667526 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38c59ef27ef013d947a1988cb0bef8c9"} experiment-1 | {"level":"info","message":"GET /experiments/ec133702-4cc3-439a-858f-db9ded667526 200 16ms","method":"GET","requestID":"38c59ef27ef013d947a1988cb0bef8c9","responseTime":16,"status":200,"url":"/experiments/ec133702-4cc3-439a-858f-db9ded667526"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4bd93bb360c8075b3f5ac030e95b1f11","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ec133702-4cc3-439a-858f-db9ded667526"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.187549,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383285,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU"} 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":"4bd93bb360c8075b3f5ac030e95b1f11"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.61517,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383285,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU"} 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":"f0ba9910-2a6c-11ef-91df-9f2f583abbec"},"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/03d2db87-dcea-4687-9c38-65e669f80fcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03d2db87-dcea-4687-9c38-65e669f80fcc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03d2db87-dcea-4687-9c38-65e669f80fcc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"728031d3-852f-4fb9-be5e-ec948bc1f51c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.5644124} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd50f304-a4f4-4025-abc2-672e10d9c173","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.5649767} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f6c1a14cef4ffb69b8121156d2dc8f23","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0ba9910-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/f4f34e33-b603-4ec3-ab44-92c983ddb636"},{"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/e524b523-4d79-4c5f-8509-2201c4600130"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4f75690249489a45905a0b44f4c4dd20","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636"},{"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/e524b523-4d79-4c5f-8509-2201c4600130"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"03d2db87-dcea-4687-9c38-65e669f80fcc","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/03d2db87-dcea-4687-9c38-65e669f80fcc 204 52ms","method":"DELETE","requestID":"f0ba9910-2a6c-11ef-91df-9f2f583abbec","responseTime":52,"status":204,"url":"/peerconnections/03d2db87-dcea-4687-9c38-65e669f80fcc"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ec133702-4cc3-439a-858f-db9ded667526"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff4f34e33-b603-4ec3-ab44-92c983ddb636","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1010465a-f346-4f16-80df-10353df862c3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.6203427} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.324558,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636","object_type":"device","rebac_allow":false,"scope_allow":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":"f0c631d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fec133702-4cc3-439a-858f-db9ded667526': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fec133702-4cc3-439a-858f-db9ded667526","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"d10db654-0624-479f-abfe-853a87a79920","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.6265519} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/signaling 200 14ms","method":"POST","requestID":"f0c631d0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e189db62-ffa4-4866-9483-d3333bd6b6cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.627009} 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":"4bd93bb360c8075b3f5ac030e95b1f11"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe524b523-4d79-4c5f-8509-2201c4600130","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53410784-e9c9-42a1-9696-432526328adb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.6378279} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.130342,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e524b523-4d79-4c5f-8509-2201c4600130","object_type":"device","rebac_allow":false,"scope_allow":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":"f0c8f0f0-2a6c-11ef-91df-9f2f583abbec"},"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/e524b523-4d79-4c5f-8509-2201c4600130/signaling 200 14ms","method":"POST","requestID":"f0c8f0f0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/e524b523-4d79-4c5f-8509-2201c4600130/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ec133702-4cc3-439a-858f-db9ded667526"} gateway-1 | {"time_local":"14/Jun/2024:16:41:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ec133702-4cc3-439a-858f-db9ded667526 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":"4bd93bb360c8075b3f5ac030e95b1f11"} experiment-1 | {"level":"info","message":"DELETE /experiments/ec133702-4cc3-439a-858f-db9ded667526 204 174ms","method":"DELETE","requestID":"4bd93bb360c8075b3f5ac030e95b1f11","responseTime":174,"status":204,"url":"/experiments/ec133702-4cc3-439a-858f-db9ded667526"} gateway-1 | {"time_local":"14/Jun/2024:16:41:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2837","request_time":"4.252","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f9347d3ca51d075cd9618c797d49d3bb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"f6c1a14cef4ffb69b8121156d2dc8f23","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"f6c1a14cef4ffb69b8121156d2dc8f23"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 128ms","method":"POST","requestID":"4f75690249489a45905a0b44f4c4dd20","responseTime":128,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"4f75690249489a45905a0b44f4c4dd20"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a3b88bc08a7744d429924894a66a82fb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:41:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.751","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4e08cd97712c541c9fbad00881d6df7e"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.984798,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383285,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU"} 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":"a3b88bc08a7744d429924894a66a82fb"},"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/e524b523-4d79-4c5f-8509-2201c4600130' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"50c27f2a-ac4a-41c9-9877-49f742244ce8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7259445} 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":"a3b88bc08a7744d429924894a66a82fb"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97632daf-1345-4430-a08e-0e8efb9de37b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7310095} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f4f34e33-b603-4ec3-ab44-92c983ddb636' 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":"a3b88bc08a7744d429924894a66a82fb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"3ad3a09f-7d7d-4dd3-92de-19e19f461bee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7418647} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"241771e6-8667-4ec1-870f-dbf9f4085461","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7420762} 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":"a3b88bc08a7744d429924894a66a82fb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"dd70460a-a4d9-43a9-9b5f-085318612eba","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7465622} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3b88bc08a7744d429924894a66a82fb"},"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":"14/Jun/2024:16:41:25 +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":"a3b88bc08a7744d429924894a66a82fb"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"a3b88bc08a7744d429924894a66a82fb","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0f1502b6b26c856676eaf0fc316ea431","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.845345,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383285,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4NX0.U7ShozsrMh0htpLyVzMV1IxKSlr0i_eJ7a-rJg_VTaU"} 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":"0f1502b6b26c856676eaf0fc316ea431"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3bcf4098-98ca-4e5c-8938-fef8c154ceb3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7777352} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0f1502b6b26c856676eaf0fc316ea431"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e56f9b35-b153-4d53-a4e7-d178167d570f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7826662} 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":"0f1502b6b26c856676eaf0fc316ea431"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6e75c76c-318c-4eec-858b-5c1e756623e8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7935815} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd263a37-804c-420a-b682-df3675eaba44","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7938488} 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":"0f1502b6b26c856676eaf0fc316ea431"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.793554793Z"}]},"request_id":"c688daa3-5920-4da4-bbbe-a17787880f21","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383285.7978213} 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":"0f1502b6b26c856676eaf0fc316ea431"},"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":"14/Jun/2024:16:41: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.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0f1502b6b26c856676eaf0fc316ea431"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"0f1502b6b26c856676eaf0fc316ea431","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Nn0.SCuZvxgh-x6mZFm2xULu9_u4a_Us6B30hbLzHpGWdDI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"85b6e14f7ba45bce2c7b48fca73e7c16","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:26Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.097017,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383286,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Nn0.SCuZvxgh-x6mZFm2xULu9_u4a_Us6B30hbLzHpGWdDI"} 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":"85b6e14f7ba45bce2c7b48fca73e7c16"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"7b11f0c7-dd43-45b9-be19-d9726ebf9165","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383286.2967954} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"85b6e14f7ba45bce2c7b48fca73e7c16"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab45fc5e-5b29-438d-942b-1c8524a1f465","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383286.302843} 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":"85b6e14f7ba45bce2c7b48fca73e7c16"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"4b21111e-5a1b-4fad-ad62-a33b89d772a5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383286.3163948} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"85b6e14f7ba45bce2c7b48fca73e7c16"},"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/72871b38-cf95-4e7b-ab25-67df584afc2b 200 36ms","method":"PATCH","requestID":"85b6e14f7ba45bce2c7b48fca73e7c16","responseTime":36,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b"} gateway-1 | {"time_local":"14/Jun/2024:16:41:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/72871b38-cf95-4e7b-ab25-67df584afc2b HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"85b6e14f7ba45bce2c7b48fca73e7c16"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Nn0.SCuZvxgh-x6mZFm2xULu9_u4a_Us6B30hbLzHpGWdDI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a38faefe3ad7015f7922bbaf8f2d86e3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:26Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68702,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383286,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4Nn0.SCuZvxgh-x6mZFm2xULu9_u4a_Us6B30hbLzHpGWdDI"} 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":"a38faefe3ad7015f7922bbaf8f2d86e3"},"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":"14/Jun/2024:16:41:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/72871b38-cf95-4e7b-ab25-67df584afc2b/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":"a38faefe3ad7015f7922bbaf8f2d86e3"} device-1 | {"level":"info","message":"POST /devices/72871b38-cf95-4e7b-ab25-67df584afc2b/websocket 200 20ms","method":"POST","requestID":"a38faefe3ad7015f7922bbaf8f2d86e3","responseTime":20,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b' 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":"b8001ab11ef46f43fedacdc71ffb9405","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a04fe434-e204-42dd-9213-4635d580f774/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":"b8001ab11ef46f43fedacdc71ffb9405"} device-1 | {"level":"info","message":"OPTIONS /devices/a04fe434-e204-42dd-9213-4635d580f774/websocket 200 2ms","method":"OPTIONS","requestID":"b8001ab11ef46f43fedacdc71ffb9405","responseTime":2,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"413914f95171da179a88aa6e3c30991e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.227309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"413914f95171da179a88aa6e3c30991e"},"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":"14/Jun/2024:16:41:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a04fe434-e204-42dd-9213-4635d580f774/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"413914f95171da179a88aa6e3c30991e"} device-1 | {"level":"info","message":"POST /devices/a04fe434-e204-42dd-9213-4635d580f774/websocket 200 22ms","method":"POST","requestID":"413914f95171da179a88aa6e3c30991e","responseTime":22,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8478685d057af2eee96434d7a764fdbc","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.234935,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"8478685d057af2eee96434d7a764fdbc"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"c4125a7a-4ee3-4831-9f37-3e51103a541e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383287.8823297} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8478685d057af2eee96434d7a764fdbc"},"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":"14/Jun/2024:16:41:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72871b38-cf95-4e7b-ab25-67df584afc2b? 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":"8478685d057af2eee96434d7a764fdbc"} device-1 | {"level":"info","message":"GET /devices/72871b38-cf95-4e7b-ab25-67df584afc2b? 200 22ms","method":"GET","requestID":"8478685d057af2eee96434d7a764fdbc","responseTime":22,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"201730953242153292e63b99c9379818","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.31317,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"201730953242153292e63b99c9379818"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.793554793Z"}]},"request_id":"e74b515d-689f-4cf9-a45d-8cadf2de7323","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383287.9119458} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"201730953242153292e63b99c9379818"},"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":"14/Jun/2024:16:41:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a04fe434-e204-42dd-9213-4635d580f774? 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":"201730953242153292e63b99c9379818"} device-1 | {"level":"info","message":"GET /devices/a04fe434-e204-42dd-9213-4635d580f774? 200 18ms","method":"GET","requestID":"201730953242153292e63b99c9379818","responseTime":18,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"26994d90c12ecf429d63f3ee8dc593c6","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:57580","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.208594,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"26994d90c12ecf429d63f3ee8dc593c6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully booked experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.82675,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"f22dd820-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.160159,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"f22e7460-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"97d1816b-21bf-4ff0-877f-c9b487544fea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383287.9804704} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f22dd820-2a6c-11ef-91df-9f2f583abbec"},"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/72871b38-cf95-4e7b-ab25-67df584afc2b? 200 16ms","method":"GET","requestID":"f22dd820-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.793554793Z"}]},"request_id":"91dbfe38-b2c9-452f-991b-407679cccc39","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383287.9846997} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f22e7460-2a6c-11ef-91df-9f2f583abbec"},"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/a04fe434-e204-42dd-9213-4635d580f774? 200 16ms","method":"GET","requestID":"f22e7460-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"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/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661603,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661717,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"f2385f70-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"f2388680-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43094","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"2e284bd1-d34c-4184-b2d9-19ae0fbfa718","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0504112} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2385f70-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.793554793Z"}]},"request_id":"b7a70838-109c-4f12-9170-69494a04674e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0515735} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"58d040df-8052-481f-8035-5b3c94bed652","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0520759} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2388680-2a6c-11ef-91df-9f2f583abbec"},"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:43094","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.317725,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","rebac_allow":false,"scope_allow":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":"f238ad90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a04fe434-e204-42dd-9213-4635d580f774? 200 17ms","method":"GET","requestID":"f2388680-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/72871b38-cf95-4e7b-ab25-67df584afc2b? 200 19ms","method":"GET","requestID":"f2385f70-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling 200 17ms","method":"POST","requestID":"f238ad90-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa40f4a89-b294-4fb0-b390-477a1e0b2cd8#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa40f4a89-b294-4fb0-b390-477a1e0b2cd8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"4777890c-fe04-4b3b-a2d8-fb15fc6155b3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0607343} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7fa62d83-45a0-4a4b-b41c-a583691c3f92","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.060948} 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":"26994d90c12ecf429d63f3ee8dc593c6"},"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:57580","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4cff453a-d1bc-48a7-860b-d19229372c23","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0653179} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.723098,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f23b93c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8ab12d52-e719-421f-b5af-b559ae0eb6db","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0670538} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.575737,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","rebac_allow":false,"scope_allow":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":"f23bbad0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"26994d90c12ecf429d63f3ee8dc593c6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 143ms","method":"POST","requestID":"26994d90c12ecf429d63f3ee8dc593c6","responseTime":143,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling 200 12ms","method":"POST","requestID":"f23b93c0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a04fe434-e204-42dd-9213-4635d580f774/signaling 200 11ms","method":"POST","requestID":"f23bbad0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4OH0.ap5wbhHB_YUddR3aVdfTQSl6tCxBeMImHuQY5oQoO7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2aa4860d411d3b636d15ba7ac31209e7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b5fcc69-ed4c-49da-9d1e-842a282370e2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.07836} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65438,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.337061,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383288,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4OH0.ap5wbhHB_YUddR3aVdfTQSl6tCxBeMImHuQY5oQoO7w"} 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":"2aa4860d411d3b636d15ba7ac31209e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f23db6a0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.741841455Z"}]},"request_id":"8c08460f-e7ee-4385-82ce-2929df8593ab","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.0822983} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a04fe434-e204-42dd-9213-4635d580f774/signaling 200 9ms","method":"POST","requestID":"f23db6a0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/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":"2aa4860d411d3b636d15ba7ac31209e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"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":"ec8803f0-265d-40ee-baa8-aabc1ddba4f8"},{"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":"40349262-42f7-4050-9d82-45b052d76c0d"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e09992ab-8b65-4d06-b12b-33afd979dfca"}]},"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/a04fe434-e204-42dd-9213-4635d580f774"},{"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/72871b38-cf95-4e7b-ab25-67df584afc2b"}],"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":"14/Jun/2024:16:41:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72871b38-cf95-4e7b-ab25-67df584afc2b? 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":"2aa4860d411d3b636d15ba7ac31209e7"} device-1 | {"level":"info","message":"GET /devices/72871b38-cf95-4e7b-ab25-67df584afc2b? 200 11ms","method":"GET","requestID":"2aa4860d411d3b636d15ba7ac31209e7","responseTime":11,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.772651,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383287,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4N30.ALBQlxoXwoARWk-SzSMbN60l2bo3MxqlRvNK_xPNGSI"} 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":"f23f6450-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4OH0.ap5wbhHB_YUddR3aVdfTQSl6tCxBeMImHuQY5oQoO7w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"66c8bce405953154e3d0120cb6b8c991","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671437,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383288,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI4OH0.ap5wbhHB_YUddR3aVdfTQSl6tCxBeMImHuQY5oQoO7w"} 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":"66c8bce405953154e3d0120cb6b8c991"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6d8c80ee-155f-49fc-9a8f-f7f94056dab1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.1002505} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c21d7dc9-ca51-49ae-aaf0-9b122410e404","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.1004717} 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":"f23f6450-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:25.793554793Z"}]},"request_id":"f619802a-d2c9-4c3f-b737-2ba8aabe544c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.1014962} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66c8bce405953154e3d0120cb6b8c991"},"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/a04fe434-e204-42dd-9213-4635d580f774? 200 14ms","method":"GET","requestID":"66c8bce405953154e3d0120cb6b8c991","responseTime":14,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a04fe434-e204-42dd-9213-4635d580f774? 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":"66c8bce405953154e3d0120cb6b8c991"} 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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 36ms","method":"POST","requestID":"f23f6450-2a6c-11ef-91df-9f2f583abbec","responseTime":36,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59d67e5d-79e7-4474-bdd0-6858cb1bab83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.1534226} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.787435,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f2492850-2a6c-11ef-91df-9f2f583abbec"},"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/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling 200 10ms","method":"POST","requestID":"f2492850-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f2e6f9c7-1df3-4ef5-9144-ce97c9b0efcd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383288.1665242} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.843592,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","rebac_allow":false,"scope_allow":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":"f24afd10-2a6c-11ef-91df-9f2f583abbec"},"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/a04fe434-e204-42dd-9213-4635d580f774/signaling 200 9ms","method":"POST","requestID":"f24afd10-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/signaling"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a74ae9d557fce41b20b0ffa8dea2696d","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/a04fe434-e204-42dd-9213-4635d580f774"},{"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/72871b38-cf95-4e7b-ab25-67df584afc2b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"a74ae9d557fce41b20b0ffa8dea2696d","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"a74ae9d557fce41b20b0ffa8dea2696d"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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":"ede30a91cc53c12eb7915141415f6cd6","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/a04fe434-e204-42dd-9213-4635d580f774"},{"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/72871b38-cf95-4e7b-ab25-67df584afc2b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa247767f-6a67-4d11-acbf-84e4bf8ee4e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"78e53482-ff51-40ef-8b55-cb11963eb058","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.322634} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.896253,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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":"f393f7d0-2a6c-11ef-91df-9f2f583abbec"},"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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6 200 10ms","method":"GET","requestID":"f393f7d0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"ede30a91cc53c12eb7915141415f6cd6","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"ede30a91cc53c12eb7915141415f6cd6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4e0bdc46-9dce-4550-86c0-e32f53928977","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.3492947} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.344664,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f397ef70-2a6c-11ef-91df-9f2f583abbec"},"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/a04fe434-e204-42dd-9213-4635d580f774/signaling 200 12ms","method":"POST","requestID":"f397ef70-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1b059cf-25bb-400c-9c67-d86c239c9693","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.3652375} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.127718,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","rebac_allow":false,"scope_allow":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":"f39a3960-2a6c-11ef-91df-9f2f583abbec"},"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/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling 200 14ms","method":"POST","requestID":"f39a3960-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"89718093c5ca7a4449e1952f7360f164","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.157181,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383290,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8"} 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":"89718093c5ca7a4449e1952f7360f164"},"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/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} gateway-1 | {"time_local":"14/Jun/2024:16:41:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89718093c5ca7a4449e1952f7360f164"} experiment-1 | {"level":"info","message":"GET /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8 200 15ms","method":"GET","requestID":"89718093c5ca7a4449e1952f7360f164","responseTime":15,"status":200,"url":"/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"adb3daeefc2e715614abbe27a7deaa3c","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.230884,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383290,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8"} 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":"adb3daeefc2e715614abbe27a7deaa3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.235548,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383290,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8"} 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":"f3a89140-2a6c-11ef-91df-9f2f583abbec"},"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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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":"6e383fd8a0d9598eff9dadcbae6c6106","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa247767f-6a67-4d11-acbf-84e4bf8ee4e6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa247767f-6a67-4d11-acbf-84e4bf8ee4e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"51dddb53-8eb1-40f3-a13a-ae7493ecbc03","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.4811249} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0c6b029-6e24-4fb3-b92c-56541a0ade28","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.4816618} 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/a04fe434-e204-42dd-9213-4635d580f774"},{"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/72871b38-cf95-4e7b-ab25-67df584afc2b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"}}},"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":"ee522ab126b13656f605b8e9652c8655","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/a04fe434-e204-42dd-9213-4635d580f774"},{"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/72871b38-cf95-4e7b-ab25-67df584afc2b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"}}},"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":"f3a89140-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"a247767f-6a67-4d11-acbf-84e4bf8ee4e6","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/a247767f-6a67-4d11-acbf-84e4bf8ee4e6 204 49ms","method":"DELETE","requestID":"f3a89140-2a6c-11ef-91df-9f2f583abbec","responseTime":49,"status":204,"url":"/peerconnections/a247767f-6a67-4d11-acbf-84e4bf8ee4e6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa04fe434-e204-42dd-9213-4635d580f774","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5cedcd64-3c17-4752-ad3f-20e8714b7e83","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.5314698} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.697803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a04fe434-e204-42dd-9213-4635d580f774","object_type":"device","rebac_allow":false,"scope_allow":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":"f3b38dc0-2a6c-11ef-91df-9f2f583abbec"},"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/a04fe434-e204-42dd-9213-4635d580f774/signaling 200 13ms","method":"POST","requestID":"f3b38dc0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/a04fe434-e204-42dd-9213-4635d580f774/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa40f4a89-b294-4fb0-b390-477a1e0b2cd8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa40f4a89-b294-4fb0-b390-477a1e0b2cd8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"95cc5c69-0d18-4980-8be7-2b3b8ab4da0d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.538594} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"03be9b71-d97c-4493-89a5-18a971de0c4f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.5391705} 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":"adb3daeefc2e715614abbe27a7deaa3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72871b38-cf95-4e7b-ab25-67df584afc2b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e295d797-43d6-444f-9a4d-e1762ddaa52e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.549743} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.791747,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b","object_type":"device","rebac_allow":false,"scope_allow":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":"f3b64ce0-2a6c-11ef-91df-9f2f583abbec"},"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/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling 200 15ms","method":"POST","requestID":"f3b64ce0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/72871b38-cf95-4e7b-ab25-67df584afc2b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} gateway-1 | {"time_local":"14/Jun/2024:16:41:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"adb3daeefc2e715614abbe27a7deaa3c"} gateway-1 | {"time_local":"14/Jun/2024:16:41:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2839","request_time":"4.272","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"46f0c280a11d789e6714d545ef922050"} experiment-1 | {"level":"info","message":"DELETE /experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8 204 184ms","method":"DELETE","requestID":"adb3daeefc2e715614abbe27a7deaa3c","responseTime":184,"status":204,"url":"/experiments/a40f4a89-b294-4fb0-b390-477a1e0b2cd8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"6e383fd8a0d9598eff9dadcbae6c6106","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"6e383fd8a0d9598eff9dadcbae6c6106"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"ee522ab126b13656f605b8e9652c8655","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee522ab126b13656f605b8e9652c8655"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"30fedb386dd40da7fe6a67c4fdbd14bd","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:41:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.785","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"08842ffd8d5a2736f122f18af31b6ea7"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/72871b38-cf95-4e7b-ab25-67df584afc2b' closed"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.892048,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383290,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8"} 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":"30fedb386dd40da7fe6a67c4fdbd14bd"},"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/a04fe434-e204-42dd-9213-4635d580f774' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e87791d2-f5ad-45df-aa6b-161d588d9c03","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.6531026} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30fedb386dd40da7fe6a67c4fdbd14bd"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1516bceb-f29d-421f-8dcc-17cb5d2a56d0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.6601229} 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":"30fedb386dd40da7fe6a67c4fdbd14bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"63700391-1be8-4acf-95af-1edf8ce8c7c0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.6754577} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4eeef417-6e9e-47c6-9f1f-caf9f6a432b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.6758742} 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":"30fedb386dd40da7fe6a67c4fdbd14bd"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"8b9e7f45-1cf3-434a-afb6-114885b29a1a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.6805923} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30fedb386dd40da7fe6a67c4fdbd14bd"},"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":"14/Jun/2024:16:41:30 +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":"30fedb386dd40da7fe6a67c4fdbd14bd"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"30fedb386dd40da7fe6a67c4fdbd14bd","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4890833a6a75ce60d5ded57e5b5c12db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.670352,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383290,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MH0.hOaFFFXe9i9aPSjWYC1Nwy3_fRElwJcNS1AiaTbAPy8"} 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":"4890833a6a75ce60d5ded57e5b5c12db"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e7895e54-41d2-48ab-9746-5dbfc1e76e9a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.706429} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4890833a6a75ce60d5ded57e5b5c12db"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8486f9b-e523-4386-9206-79ddab21a508","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.7114103} 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":"4890833a6a75ce60d5ded57e5b5c12db"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d51985d0-18f2-48cc-b023-292d456820ed","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.721765} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34412aef-0b3e-47a1-b4cd-964ed6d13042","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.7218585} 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":"4890833a6a75ce60d5ded57e5b5c12db"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"aaffa963-de3a-42de-8ae8-95832c251a62","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383290.7259958} 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":"4890833a6a75ce60d5ded57e5b5c12db"},"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":"14/Jun/2024:16:41:30 +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":"4890833a6a75ce60d5ded57e5b5c12db"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"4890833a6a75ce60d5ded57e5b5c12db","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"0a906a8be90eb3f71eda806d1cf5d779","responseTime":8,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"4ac338cb4bd6ec5261196a98b596d3af","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:57580","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.027591,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"0a906a8be90eb3f71eda806d1cf5d779"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.458328,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"4ac338cb4bd6ec5261196a98b596d3af"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"6965eb74-17da-489e-b963-72563249b73c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.2210383} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a906a8be90eb3f71eda806d1cf5d779"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"ef735857-b4a8-49a9-9af1-0c58e8d18493","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.222038} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ac338cb4bd6ec5261196a98b596d3af"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7c39802f-06ca-4ae2-8a36-54c0d86325e2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.2284234} 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":"0a906a8be90eb3f71eda806d1cf5d779"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"831d352d-e0c1-4702-b0f6-64092e4f2d22","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.2300477} 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":"4ac338cb4bd6ec5261196a98b596d3af"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"9472c0fb-c31c-446b-8d6c-c6a10ec6b4f8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.2336738} 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":"4ac338cb4bd6ec5261196a98b596d3af"},"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":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e83460eb-fffa-438a-ab3c-d328bb115006 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":"4ac338cb4bd6ec5261196a98b596d3af"} device-1 | {"level":"info","message":"PATCH /devices/e83460eb-fffa-438a-ab3c-d328bb115006 200 29ms","method":"PATCH","requestID":"4ac338cb4bd6ec5261196a98b596d3af","responseTime":29,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"760306ee8906aa90876b6f6787be4466","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"4a6a6399-1c9e-4933-9ed3-544e853e8c73","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.2471063} 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":"0a906a8be90eb3f71eda806d1cf5d779"},"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:57580","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.170626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} gateway-1 | {"time_local":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0aae3daf-a19d-4521-9912-add81b19b014 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":"0a906a8be90eb3f71eda806d1cf5d779"} device-1 | {"level":"info","message":"PATCH /devices/0aae3daf-a19d-4521-9912-add81b19b014 200 46ms","method":"PATCH","requestID":"0a906a8be90eb3f71eda806d1cf5d779","responseTime":46,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014"} 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":"760306ee8906aa90876b6f6787be4466"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cd8f05734d4a708c331545435fd40410","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.198061,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket 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":"cd8f05734d4a708c331545435fd40410"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e83460eb-fffa-438a-ab3c-d328bb115006/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":"760306ee8906aa90876b6f6787be4466"} device-1 | {"level":"info","message":"POST /devices/e83460eb-fffa-438a-ab3c-d328bb115006/websocket 200 22ms","method":"POST","requestID":"760306ee8906aa90876b6f6787be4466","responseTime":22,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0aae3daf-a19d-4521-9912-add81b19b014/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":"cd8f05734d4a708c331545435fd40410"} device-1 | {"level":"info","message":"POST /devices/0aae3daf-a19d-4521-9912-add81b19b014/websocket 200 22ms","method":"POST","requestID":"cd8f05734d4a708c331545435fd40410","responseTime":22,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"161f7a4fd95b51862ddfbd606f61d9b7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.665619,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"161f7a4fd95b51862ddfbd606f61d9b7"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"da36ff16-620e-4f76-b11b-0bf6c941a1e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.3209865} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"161f7a4fd95b51862ddfbd606f61d9b7"},"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":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e83460eb-fffa-438a-ab3c-d328bb115006? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"161f7a4fd95b51862ddfbd606f61d9b7"} device-1 | {"level":"info","message":"GET /devices/e83460eb-fffa-438a-ab3c-d328bb115006? 200 16ms","method":"GET","requestID":"161f7a4fd95b51862ddfbd606f61d9b7","responseTime":16,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"96237e6ba9523ba3a5df9d13d714a030","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.899361,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"96237e6ba9523ba3a5df9d13d714a030"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"cc1cdd79-f6b0-4bd1-8e48-9d1e867500a4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.3420572} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"96237e6ba9523ba3a5df9d13d714a030"},"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":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 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":"96237e6ba9523ba3a5df9d13d714a030"} device-1 | {"level":"info","message":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 200 16ms","method":"GET","requestID":"96237e6ba9523ba3a5df9d13d714a030","responseTime":16,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"89bf2f8b56e2b8b78a2dc005f53a8f36","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:57580","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.718444,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"89bf2f8b56e2b8b78a2dc005f53a8f36"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"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:57580","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.166292,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"f437b1e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.088022,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"f4380000-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"e1fef8cb-4fc2-41eb-accf-af8c98dda052","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.3994126} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f437b1e0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"928c4d5c-1401-47cf-9d18-98cf7144c29a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.4001708} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4380000-2a6c-11ef-91df-9f2f583abbec"},"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/e83460eb-fffa-438a-ab3c-d328bb115006? 200 14ms","method":"GET","requestID":"f437b1e0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 200 13ms","method":"GET","requestID":"f4380000-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"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:57580","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.504229,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"f442d570-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.423744,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"f4432390-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.765389,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fdec560d-7d00-441f-b462-8ef02fbab58a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.4773543} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"4f528c02-59b1-4994-85b0-a18d0bf5053c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.4803586} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","rebac_allow":false,"scope_allow":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":"f44398c0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"bd3ed9c1-ab63-4adf-b8be-33653800b2cf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.4827995} 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":"f442d570-2a6c-11ef-91df-9f2f583abbec"},"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":"f4432390-2a6c-11ef-91df-9f2f583abbec"},"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/e83460eb-fffa-438a-ab3c-d328bb115006/signaling 200 25ms","method":"POST","requestID":"f44398c0-2a6c-11ef-91df-9f2f583abbec","responseTime":25,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e83460eb-fffa-438a-ab3c-d328bb115006? 200 31ms","method":"GET","requestID":"f442d570-2a6c-11ef-91df-9f2f583abbec","responseTime":31,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 200 30ms","method":"GET","requestID":"f4432390-2a6c-11ef-91df-9f2f583abbec","responseTime":30,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1103d98e-dbbc-4ac5-8b70-aef69d255a2b#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1103d98e-dbbc-4ac5-8b70-aef69d255a2b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d4051a32-3a45-4c29-a7c7-da03ddc946ed","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.4952333} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"165a41bc-f898-4569-9c6a-dcee5257cee3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.496625} 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":"89bf2f8b56e2b8b78a2dc005f53a8f36"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a112dc10-cb92-4819-8f55-3ae5e9b6871f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5033643} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.161049,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","rebac_allow":false,"scope_allow":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":"f447de80-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8764985-c476-4ca2-9289-ba1a8a7950a2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5068583} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.577196,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f4487ac0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} gateway-1 | {"time_local":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89bf2f8b56e2b8b78a2dc005f53a8f36"} experiment-1 | {"level":"info","message":"POST /experiments? 201 156ms","method":"POST","requestID":"89bf2f8b56e2b8b78a2dc005f53a8f36","responseTime":156,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling 200 15ms","method":"POST","requestID":"f447de80-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling 200 12ms","method":"POST","requestID":"f4487ac0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"810d92619a53dd1eb644d7d032870ea7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.969007,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"810d92619a53dd1eb644d7d032870ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af572997-5ae2-4ba3-a1e5-f8ce887f7b94","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5194242} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.472686,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f44a9da0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.675435180Z"}]},"request_id":"4626f534-b9e2-46a0-bea6-58adf4b240cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.523374} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling 200 9ms","method":"POST","requestID":"f44a9da0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/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":"810d92619a53dd1eb644d7d032870ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"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":"2f7212c4-1cac-4d96-a06e-26674068c4ca"},{"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":"4e36b15a-1cda-4aa1-a68a-d28a04c6f855"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"144b01af-6723-4a98-9918-75510d56c3a6"}]},"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/e83460eb-fffa-438a-ab3c-d328bb115006"},{"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/0aae3daf-a19d-4521-9912-add81b19b014"}],"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":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e83460eb-fffa-438a-ab3c-d328bb115006? 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":"810d92619a53dd1eb644d7d032870ea7"} device-1 | {"level":"info","message":"GET /devices/e83460eb-fffa-438a-ab3c-d328bb115006? 200 12ms","method":"GET","requestID":"810d92619a53dd1eb644d7d032870ea7","responseTime":12,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.983423,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"f44c7260-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dcf3cba174799cb646e3ca8fad383a77","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.757522,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383291,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5MX0.Fn2QHm2LC7Jfa7UTGLz0T9BucAb2tucnUS2S_Gj0dWQ"} 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":"dcf3cba174799cb646e3ca8fad383a77"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"e7887b54-3522-4d62-8967-2212c5980605","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5424051} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de0f00bf-95cb-41de-b5ee-f31b54e74a22","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5426214} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:30.721743447Z"}]},"request_id":"93192428-07d7-40fc-9fe5-cced76e75c44","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5433776} 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":"f44c7260-2a6c-11ef-91df-9f2f583abbec"},"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":"dcf3cba174799cb646e3ca8fad383a77"},"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":"14/Jun/2024:16:41:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 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":"dcf3cba174799cb646e3ca8fad383a77"} device-1 | {"level":"info","message":"GET /devices/0aae3daf-a19d-4521-9912-add81b19b014? 200 13ms","method":"GET","requestID":"dcf3cba174799cb646e3ca8fad383a77","responseTime":13,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014?"} 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/92da90c7-987a-4144-89e0-0f26e2fc29f1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 31ms","method":"POST","requestID":"f44c7260-2a6c-11ef-91df-9f2f583abbec","responseTime":31,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e951fb3e-f233-48fa-9abf-b3ba9c861f91","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5868201} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.281889,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","rebac_allow":false,"scope_allow":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":"f454fde0-2a6c-11ef-91df-9f2f583abbec"},"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/e83460eb-fffa-438a-ab3c-d328bb115006/signaling 200 9ms","method":"POST","requestID":"f454fde0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2520e5a-1b0c-4ed2-8b9c-36d7f1a949ad","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383291.5969708} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.302969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","rebac_allow":false,"scope_allow":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":"f4568480-2a6c-11ef-91df-9f2f583abbec"},"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/0aae3daf-a19d-4521-9912-add81b19b014/signaling 200 10ms","method":"POST","requestID":"f4568480-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","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/92da90c7-987a-4144-89e0-0f26e2fc29f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","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":"195b3ddbdb5bac83527b4948ad50cb31","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/e83460eb-fffa-438a-ab3c-d328bb115006"},{"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/0aae3daf-a19d-4521-9912-add81b19b014"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"195b3ddbdb5bac83527b4948ad50cb31","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"195b3ddbdb5bac83527b4948ad50cb31"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","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/92da90c7-987a-4144-89e0-0f26e2fc29f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","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":"3027dfed2b7fabf1fad0b90d86551b7f","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/e83460eb-fffa-438a-ab3c-d328bb115006"},{"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/0aae3daf-a19d-4521-9912-add81b19b014"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92da90c7-987a-4144-89e0-0f26e2fc29f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9116b63f-0d65-4130-9324-85e5e041fa5d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.6840239} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.552633,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1","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":"f59482c0-2a6c-11ef-91df-9f2f583abbec"},"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/92da90c7-987a-4144-89e0-0f26e2fc29f1 200 14ms","method":"GET","requestID":"f59482c0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"3027dfed2b7fabf1fad0b90d86551b7f","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"3027dfed2b7fabf1fad0b90d86551b7f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"642d90a4-82b9-4daf-9846-bf31c097d2ec","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.7250988} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.771484,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","rebac_allow":false,"scope_allow":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":"f59b1270-2a6c-11ef-91df-9f2f583abbec"},"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/e83460eb-fffa-438a-ab3c-d328bb115006/signaling 200 12ms","method":"POST","requestID":"f59b1270-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30f4c8bd-6727-4ffc-9842-6d080c094dd1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.7400823} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.922823,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","rebac_allow":false,"scope_allow":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":"f59d3550-2a6c-11ef-91df-9f2f583abbec"},"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/0aae3daf-a19d-4521-9912-add81b19b014/signaling 200 14ms","method":"POST","requestID":"f59d3550-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"aa0f44d3e8fe002d1977d036e2523574","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.276778,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383293,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio"} 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":"aa0f44d3e8fe002d1977d036e2523574"},"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/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} gateway-1 | {"time_local":"14/Jun/2024:16:41:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b 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":"aa0f44d3e8fe002d1977d036e2523574"} experiment-1 | {"level":"info","message":"GET /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b 200 15ms","method":"GET","requestID":"aa0f44d3e8fe002d1977d036e2523574","responseTime":15,"status":200,"url":"/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5e93192a1d6d9811ba68c473c6484820","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.378209,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383293,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio"} 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":"5e93192a1d6d9811ba68c473c6484820"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.25119,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383293,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio"} 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":"f5a858e0-2a6c-11ef-91df-9f2f583abbec"},"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/92da90c7-987a-4144-89e0-0f26e2fc29f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92da90c7-987a-4144-89e0-0f26e2fc29f1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92da90c7-987a-4144-89e0-0f26e2fc29f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"24e81137-b8b6-4536-9687-8234be59e979","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.8347752} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b2d8297-90f3-4851-8680-a8d88c29c52f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.8352828} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ca1a3ca36cd049bc3026d12308b029a3","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":"f5a858e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/e83460eb-fffa-438a-ab3c-d328bb115006"},{"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/0aae3daf-a19d-4521-9912-add81b19b014"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6588521cffa4e5a414bfc88e8918cba0","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/e83460eb-fffa-438a-ab3c-d328bb115006"},{"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/0aae3daf-a19d-4521-9912-add81b19b014"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"92da90c7-987a-4144-89e0-0f26e2fc29f1","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/92da90c7-987a-4144-89e0-0f26e2fc29f1 204 55ms","method":"DELETE","requestID":"f5a858e0-2a6c-11ef-91df-9f2f583abbec","responseTime":55,"status":204,"url":"/peerconnections/92da90c7-987a-4144-89e0-0f26e2fc29f1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe83460eb-fffa-438a-ab3c-d328bb115006","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"74f94e60-230c-496e-88ac-dc34e37d3c82","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.8925903} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.009885,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006","object_type":"device","rebac_allow":false,"scope_allow":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":"f5b466d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1103d98e-dbbc-4ac5-8b70-aef69d255a2b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1103d98e-dbbc-4ac5-8b70-aef69d255a2b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"4d3e60c6-3697-4cce-885c-969717b4faaa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.8994765} device-1 | {"level":"info","message":"POST /devices/e83460eb-fffa-438a-ab3c-d328bb115006/signaling 200 15ms","method":"POST","requestID":"f5b466d0-2a6c-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/e83460eb-fffa-438a-ab3c-d328bb115006/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0195ce60-d9ce-4f75-8ce0-7417a8677976","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.9000046} 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":"5e93192a1d6d9811ba68c473c6484820"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0aae3daf-a19d-4521-9912-add81b19b014","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d2461ee-2116-4aa4-b55e-07130256ac7c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.9114773} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.885184,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014","object_type":"device","rebac_allow":false,"scope_allow":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":"f5b74d00-2a6c-11ef-91df-9f2f583abbec"},"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/0aae3daf-a19d-4521-9912-add81b19b014/signaling 200 16ms","method":"POST","requestID":"f5b74d00-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/0aae3daf-a19d-4521-9912-add81b19b014/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} gateway-1 | {"time_local":"14/Jun/2024:16:41:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b 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":"5e93192a1d6d9811ba68c473c6484820"} experiment-1 | {"level":"info","message":"DELETE /experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b 204 182ms","method":"DELETE","requestID":"5e93192a1d6d9811ba68c473c6484820","responseTime":182,"status":204,"url":"/experiments/1103d98e-dbbc-4ac5-8b70-aef69d255a2b"} gateway-1 | {"time_local":"14/Jun/2024:16:41:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.690","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"edfe6eefbf1e0d217b709bc897bb48b1"} gateway-1 | {"time_local":"14/Jun/2024:16:41:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2747","request_time":"2.704","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"64fd9ad537466f462f9006a980e5f6a0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"ca1a3ca36cd049bc3026d12308b029a3","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"ca1a3ca36cd049bc3026d12308b029a3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"6588521cffa4e5a414bfc88e8918cba0","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"6588521cffa4e5a414bfc88e8918cba0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"303e27ed21fe56022511d82e0d448001","responseTime":3,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e83460eb-fffa-438a-ab3c-d328bb115006' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.767396,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383293,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5M30.xLHCLAl-8v7Vh6khkMWeMnWp3PTFo__CDsONm7Ygjio"} 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":"303e27ed21fe56022511d82e0d448001"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0aae3daf-a19d-4521-9912-add81b19b014' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fa3c8343-7dfc-405e-be9e-805c791c635e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383293.9999988} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"303e27ed21fe56022511d82e0d448001"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6889d88f-f9a3-417d-89f3-4516858cde8f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.0069659} 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":"303e27ed21fe56022511d82e0d448001"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"3258dab5-dbcd-4448-9917-dc1f33d65825","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.0155056} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97c856b3-4c30-4db2-8efd-eb6b334eac4e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.015706} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"303e27ed21fe56022511d82e0d448001"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"440700e2-10e8-4d0f-803e-1a124c05d1fe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.020151} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"303e27ed21fe56022511d82e0d448001"},"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":"14/Jun/2024:16:41: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":"303e27ed21fe56022511d82e0d448001"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"303e27ed21fe56022511d82e0d448001","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5db17c3575dabacff10d297c40f4298c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.718525,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"5db17c3575dabacff10d297c40f4298c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1714f688-ddfb-4283-a7ed-d76a67fca597","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.0428116} 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":"5db17c3575dabacff10d297c40f4298c"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a3530ca-d9ec-486f-bb6b-ccbb0b9dcb3c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.0480843} 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":"5db17c3575dabacff10d297c40f4298c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"5374bb39-b4e0-48a5-91bb-b5b5727691ce","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.0640686} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53297727-3118-4544-83a9-1f51483f1608","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.064201} 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":"5db17c3575dabacff10d297c40f4298c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"4117002f-0501-470c-9039-eef49bc7c0d4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.068938} 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":"5db17c3575dabacff10d297c40f4298c"},"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":"14/Jun/2024:16:41: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.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5db17c3575dabacff10d297c40f4298c"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"5db17c3575dabacff10d297c40f4298c","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d8368479d125aa94a0a49b2de16531e3","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"97048da9b468de84e403590897d649e6","responseTime":3,"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:57580","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.015491,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"d8368479d125aa94a0a49b2de16531e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.762761,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"97048da9b468de84e403590897d649e6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"58b5eb19-e684-44cd-b386-35215249d053","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.5566423} 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":"d8368479d125aa94a0a49b2de16531e3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"c8a86e2e-2161-4e81-8df1-cae123ba4401","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.5574021} 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":"97048da9b468de84e403590897d649e6"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0524ef9-a631-47ac-8e75-9987adff5821","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.561764} 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":"d8368479d125aa94a0a49b2de16531e3"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdcba041-f061-4735-9bb6-30429c2e1c28","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.5634227} 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":"97048da9b468de84e403590897d649e6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"e71e0743-0d08-42a9-a70a-8bb63af116ce","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.5675175} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"97048da9b468de84e403590897d649e6"},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e 200 22ms","method":"PATCH","requestID":"97048da9b468de84e403590897d649e6","responseTime":22,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"} gateway-1 | {"time_local":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"97048da9b468de84e403590897d649e6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3ec7677318fc7120eea01638088b7efb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908155,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"3ec7677318fc7120eea01638088b7efb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"a1e382a1-cd51-488a-a1ab-d2edaa0abfc2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.5791128} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8368479d125aa94a0a49b2de16531e3"},"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/2bbd377b-a841-4416-9b11-31700c64c756 200 36ms","method":"PATCH","requestID":"d8368479d125aa94a0a49b2de16531e3","responseTime":36,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756"} gateway-1 | {"time_local":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2bbd377b-a841-4416-9b11-31700c64c756 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d8368479d125aa94a0a49b2de16531e3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"715079c0bce63178ced2bde3d4d333ff","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841955,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"715079c0bce63178ced2bde3d4d333ff"},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/websocket 200 19ms","method":"POST","requestID":"3ec7677318fc7120eea01638088b7efb","responseTime":19,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3ec7677318fc7120eea01638088b7efb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/2bbd377b-a841-4416-9b11-31700c64c756/websocket 200 15ms","method":"POST","requestID":"715079c0bce63178ced2bde3d4d333ff","responseTime":15,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2bbd377b-a841-4416-9b11-31700c64c756/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":"715079c0bce63178ced2bde3d4d333ff"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3998ba2103bd1c35b260e8628bf2b703","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.142315,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"3998ba2103bd1c35b260e8628bf2b703"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"28d3183a-706e-4963-a2fc-af6b5e4dab37","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.6368964} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3998ba2103bd1c35b260e8628bf2b703"},"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":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2bbd377b-a841-4416-9b11-31700c64c756? 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":"3998ba2103bd1c35b260e8628bf2b703"} device-1 | {"level":"info","message":"GET /devices/2bbd377b-a841-4416-9b11-31700c64c756? 200 16ms","method":"GET","requestID":"3998ba2103bd1c35b260e8628bf2b703","responseTime":16,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a8f15dba276a08418836ddb13a09cb46","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.81496,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"a8f15dba276a08418836ddb13a09cb46"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"ce302f8e-298b-401b-8af8-fbb6ff43f269","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.658068} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8f15dba276a08418836ddb13a09cb46"},"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":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 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":"a8f15dba276a08418836ddb13a09cb46"} device-1 | {"level":"info","message":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 200 15ms","method":"GET","requestID":"a8f15dba276a08418836ddb13a09cb46","responseTime":15,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"055785a344a718f76ae2703515f9d27b","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:57580","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.217682,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"055785a344a718f76ae2703515f9d27b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"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:57580","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638886,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"f63381e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.626419,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"f633d000-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"32b75959-3fd2-4aca-bbf6-ef57b1b58686","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.7294388} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f63381e0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"79458de4-25e1-4bdb-8130-62146efa6b9a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.7303941} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f633d000-2a6c-11ef-91df-9f2f583abbec"},"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/2bbd377b-a841-4416-9b11-31700c64c756? 200 17ms","method":"GET","requestID":"f63381e0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 200 16ms","method":"GET","requestID":"f633d000-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"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/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.515537,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"f63d45e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.14874,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"f63dbb10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92a8b2ad-38f1-490e-a2b5-cbd46b3daf57","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.7979903} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.901295,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","rebac_allow":false,"scope_allow":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":"f63de220-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"87e50280-2133-4238-bb9a-1f38e3407731","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.800137} 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":"f63d45e0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"POST /devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling 200 20ms","method":"POST","requestID":"f63de220-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"21de68c6-d2fa-434f-a9a0-86acc9c38a95","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8055027} 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":"f63dbb10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2bbd377b-a841-4416-9b11-31700c64c756? 200 36ms","method":"GET","requestID":"f63d45e0-2a6c-11ef-91df-9f2f583abbec","responseTime":36,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc74ea42e-21c6-41fd-af01-98dd27af3769#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc74ea42e-21c6-41fd-af01-98dd27af3769","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"e9752fe2-b369-4dd5-b589-fbc3d31fe239","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8172574} device-1 | {"level":"info","message":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 200 34ms","method":"GET","requestID":"f63dbb10-2a6c-11ef-91df-9f2f583abbec","responseTime":34,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1d16cbc6-1555-469d-8e9c-2226249932dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.817667} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"055785a344a718f76ae2703515f9d27b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ddf6284f-aa79-4734-9dbd-0817f2e5898a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8237503} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.773469,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","rebac_allow":false,"scope_allow":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":"f641b2b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8cd70bcc-2c4c-4e4e-86d6-918ee4389b76","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.829201} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.320168,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"f6436060-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"level":"info","message":"POST /experiments? 201 162ms","method":"POST","requestID":"055785a344a718f76ae2703515f9d27b","responseTime":162,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"055785a344a718f76ae2703515f9d27b"} device-1 | {"level":"info","message":"POST /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling 200 21ms","method":"POST","requestID":"f641b2b0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling 200 12ms","method":"POST","requestID":"f6436060-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c0ea32ed1111e61c344790a7b9c437f7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:43088","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.802347,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"c0ea32ed1111e61c344790a7b9c437f7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"314fc6d1-9e5c-4e29-aa74-77e9c16003cb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8413732} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.412185,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f6458340-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.015484281Z"}]},"request_id":"47060c51-d15a-4e10-886d-88c3bb3339c0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.845689} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling 200 10ms","method":"POST","requestID":"f6458340-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/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":"c0ea32ed1111e61c344790a7b9c437f7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"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":"cd3c2184-bb49-4657-97ea-efb390e9db18"},{"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":"e824115a-31e0-45ba-93d5-0fa7fb6963f7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"73a30574-c545-47f3-87b8-4c63594dd150"}]},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"},{"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/2bbd377b-a841-4416-9b11-31700c64c756"}],"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":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2bbd377b-a841-4416-9b11-31700c64c756? 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":"c0ea32ed1111e61c344790a7b9c437f7"} device-1 | {"level":"info","message":"GET /devices/2bbd377b-a841-4416-9b11-31700c64c756? 200 12ms","method":"GET","requestID":"c0ea32ed1111e61c344790a7b9c437f7","responseTime":12,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.759663,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"f6477f10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0afc1cc4faf5adb08d6c19660c649ca5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281682,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383294,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5NH0.B5vBji5NdZ_jmqLFAuV85a5HCz315RZE2RUcJG_6dxk"} 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":"0afc1cc4faf5adb08d6c19660c649ca5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ba9cf25c-15d3-4b4f-ae87-3bdf231fa74b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8636713} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"960f525d-818e-4594-92be-ddba6f99cbc4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8642228} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:34.064046288Z"}]},"request_id":"f901d9ec-e215-4dc9-9166-ff1237d0ca22","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.8650553} 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":"f6477f10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0afc1cc4faf5adb08d6c19660c649ca5"},"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":"14/Jun/2024:16:41:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 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":"0afc1cc4faf5adb08d6c19660c649ca5"} device-1 | {"level":"info","message":"GET /devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e? 200 14ms","method":"GET","requestID":"0afc1cc4faf5adb08d6c19660c649ca5","responseTime":14,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e?"} 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/698ff7ee-dec8-4407-82eb-ad679b5376cd'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 31ms","method":"POST","requestID":"f6477f10-2a6c-11ef-91df-9f2f583abbec","responseTime":31,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"102a645d-33d9-4c9a-abb2-ecc4f94d0200","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.911345} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.858621,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","rebac_allow":false,"scope_allow":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":"f65031a0-2a6c-11ef-91df-9f2f583abbec"},"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/2bbd377b-a841-4416-9b11-31700c64c756/signaling 200 9ms","method":"POST","requestID":"f65031a0-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02c94777-9259-4a2d-aa82-015475997504","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383294.9229133} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.625714,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","rebac_allow":false,"scope_allow":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":"f6520660-2a6c-11ef-91df-9f2f583abbec"},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling 200 11ms","method":"POST","requestID":"f6520660-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","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/698ff7ee-dec8-4407-82eb-ad679b5376cd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","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":"7d9197ea564bf3c12083770dee6ce076","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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"},{"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/2bbd377b-a841-4416-9b11-31700c64c756"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"7d9197ea564bf3c12083770dee6ce076","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:36 +0000","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":"7d9197ea564bf3c12083770dee6ce076"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","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/698ff7ee-dec8-4407-82eb-ad679b5376cd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","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":"e3a06d401313ac4c718b80fa6dbf7c60","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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"},{"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/2bbd377b-a841-4416-9b11-31700c64c756"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:36Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F698ff7ee-dec8-4407-82eb-ad679b5376cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6bf31df1-b100-4412-9f37-9c8a8c995c3d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383296.9947264} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.64704,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd","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":"f78de1c0-2a6c-11ef-91df-9f2f583abbec"},"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/698ff7ee-dec8-4407-82eb-ad679b5376cd 200 11ms","method":"GET","requestID":"f78de1c0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"e3a06d401313ac4c718b80fa6dbf7c60","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.047","http_referrer":"","http_user_agent":"node-fetch","requestID":"e3a06d401313ac4c718b80fa6dbf7c60"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8b13aa57-cf2c-43ab-9342-d80d2fbbc6b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.0344436} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.596495,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","rebac_allow":false,"scope_allow":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":"f793d530-2a6c-11ef-91df-9f2f583abbec"},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling 200 14ms","method":"POST","requestID":"f793d530-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"baa13e3f-c2aa-4055-87f0-cfa719d2ff91","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.0498493} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.4875,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"f7966d40-2a6c-11ef-91df-9f2f583abbec"},"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/2bbd377b-a841-4416-9b11-31700c64c756/signaling 200 10ms","method":"POST","requestID":"f7966d40-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fa42c0662187205d5e8a18d56a180837","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.196719,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383297,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs"} 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":"fa42c0662187205d5e8a18d56a180837"},"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/c74ea42e-21c6-41fd-af01-98dd27af3769"} gateway-1 | {"time_local":"14/Jun/2024:16:41:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769 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":"fa42c0662187205d5e8a18d56a180837"} experiment-1 | {"level":"info","message":"GET /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769 200 17ms","method":"GET","requestID":"fa42c0662187205d5e8a18d56a180837","responseTime":17,"status":200,"url":"/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"441f8dc659bbdf1518200e9e1d2e354f","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.307085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383297,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs"} 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":"441f8dc659bbdf1518200e9e1d2e354f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.188898,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383297,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs"} 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":"f7a27b30-2a6c-11ef-91df-9f2f583abbec"},"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/698ff7ee-dec8-4407-82eb-ad679b5376cd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F698ff7ee-dec8-4407-82eb-ad679b5376cd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F698ff7ee-dec8-4407-82eb-ad679b5376cd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"57d8e17f-263d-4930-a0b0-641b8da1cb4d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.148662} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1d6438a-c36a-4c7d-9850-a51514f89185","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.1493516} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"16a10a06bf6041ec724573536c6583c1","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7a27b30-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"},{"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/2bbd377b-a841-4416-9b11-31700c64c756"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"}}},"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 4ms","method":"GET","requestID":"b05e391caa069f1d6708d78dbaef31c4","responseTime":4,"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e"},{"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/2bbd377b-a841-4416-9b11-31700c64c756"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"698ff7ee-dec8-4407-82eb-ad679b5376cd","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/698ff7ee-dec8-4407-82eb-ad679b5376cd 204 51ms","method":"DELETE","requestID":"f7a27b30-2a6c-11ef-91df-9f2f583abbec","responseTime":51,"status":204,"url":"/peerconnections/698ff7ee-dec8-4407-82eb-ad679b5376cd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e4c5bfd-cd61-427e-a612-0ff07504bf2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"306fd258-282a-44c5-80b0-55af87910e6e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.2034757} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.28435,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e","object_type":"device","rebac_allow":false,"scope_allow":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":"f7ad9ec0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc74ea42e-21c6-41fd-af01-98dd27af3769': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc74ea42e-21c6-41fd-af01-98dd27af3769","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"788e85ca-de62-48fa-af3b-67d1e67f33ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.2069616} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3e0eaa3e-dc2a-49e7-80cd-e169e03d4343","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.207504} 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":"441f8dc659bbdf1518200e9e1d2e354f"},"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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling 200 17ms","method":"POST","requestID":"f7ad9ec0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/9e4c5bfd-cd61-427e-a612-0ff07504bf2e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2bbd377b-a841-4416-9b11-31700c64c756","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ae17f41-80c9-4f18-bfc3-8b2b3689da8e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.2232153} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.23352,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2bbd377b-a841-4416-9b11-31700c64c756","object_type":"device","rebac_allow":false,"scope_allow":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":"f7b0ac00-2a6c-11ef-91df-9f2f583abbec"},"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/2bbd377b-a841-4416-9b11-31700c64c756/signaling 200 14ms","method":"POST","requestID":"f7b0ac00-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/2bbd377b-a841-4416-9b11-31700c64c756/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"} gateway-1 | {"time_local":"14/Jun/2024:16:41:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.185","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"441f8dc659bbdf1518200e9e1d2e354f"} gateway-1 | {"time_local":"14/Jun/2024:16:41:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2747","request_time":"2.683","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e6352e7efa9fa51d4707da67205b4fc9"} experiment-1 | {"level":"info","message":"DELETE /experiments/c74ea42e-21c6-41fd-af01-98dd27af3769 204 179ms","method":"DELETE","requestID":"441f8dc659bbdf1518200e9e1d2e354f","responseTime":179,"status":204,"url":"/experiments/c74ea42e-21c6-41fd-af01-98dd27af3769"} gateway-1 | {"time_local":"14/Jun/2024:16:41:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.690","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fc2d713dbd15b286f894749608f84b66"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"16a10a06bf6041ec724573536c6583c1","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"16a10a06bf6041ec724573536c6583c1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 132ms","method":"POST","requestID":"b05e391caa069f1d6708d78dbaef31c4","responseTime":132,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"b05e391caa069f1d6708d78dbaef31c4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d761a564a1e298751f251cbcb4910564","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/9e4c5bfd-cd61-427e-a612-0ff07504bf2e' closed"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.102039,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383297,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs"} 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":"d761a564a1e298751f251cbcb4910564"},"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/2bbd377b-a841-4416-9b11-31700c64c756' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e35e5cac-ca68-428f-af30-ff18e3d1e8fe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3180737} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d761a564a1e298751f251cbcb4910564"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"758b4c1d-f960-41e5-9e69-f76959685c39","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3237991} 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":"d761a564a1e298751f251cbcb4910564"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"67bf8ac4-a346-48ad-9735-e09e2261b62f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3342493} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6563af01-3197-46aa-b3a3-a0582eea2904","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3345442} 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":"d761a564a1e298751f251cbcb4910564"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.334220782Z"}]},"request_id":"4be3cea2-7c94-462c-aa78-23b3436595bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.338744} 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":"d761a564a1e298751f251cbcb4910564"},"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":"14/Jun/2024:16:41:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d761a564a1e298751f251cbcb4910564"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"d761a564a1e298751f251cbcb4910564","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b232d41238d11ca2d24340e30eb4b96f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.818608,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383297,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5N30.h2bkiWtD9Ufla-1b62vrRNw-prfUUO4RaNKSfPdNJcs"} 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":"b232d41238d11ca2d24340e30eb4b96f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9b5258c2-dca4-40b0-8bfc-45c716791056","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3626173} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b232d41238d11ca2d24340e30eb4b96f"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53b891ab-3f2f-4042-8cd4-e0959711e94a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3678305} 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":"b232d41238d11ca2d24340e30eb4b96f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"16fdefce-3c30-4457-b039-b458c45beea2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3842566} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"243f1019-3a03-4caf-b736-d22584bc7021","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3843422} 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":"b232d41238d11ca2d24340e30eb4b96f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.384224286Z"}]},"request_id":"07c1d282-c4ab-4efd-8c20-7819b52c3fbe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383297.3897715} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b232d41238d11ca2d24340e30eb4b96f"},"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":"14/Jun/2024:16:41:37 +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":"b232d41238d11ca2d24340e30eb4b96f"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"b232d41238d11ca2d24340e30eb4b96f","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":"eda771a9b666d50ae46dc48c65a0c70f","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/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":"eda771a9b666d50ae46dc48c65a0c70f"} device-1 | {"level":"info","message":"OPTIONS /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/websocket 200 1ms","method":"OPTIONS","requestID":"eda771a9b666d50ae46dc48c65a0c70f","responseTime":1,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c9289cc5da44590cc3551bc4c3c8d6b5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.358243,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"c9289cc5da44590cc3551bc4c3c8d6b5"},"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 2ms","method":"GET","requestID":"eec51964bf9852773cafec2652ca4613","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/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":"eec51964bf9852773cafec2652ca4613"} device-1 | {"level":"info","message":"OPTIONS /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/websocket 200 1ms","method":"OPTIONS","requestID":"eec51964bf9852773cafec2652ca4613","responseTime":1,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c9289cc5da44590cc3551bc4c3c8d6b5"} device-1 | {"level":"info","message":"POST /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/websocket 200 22ms","method":"POST","requestID":"c9289cc5da44590cc3551bc4c3c8d6b5","responseTime":22,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"edb10cfb08416f06be35a2e082064ea7","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.173952,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"edb10cfb08416f06be35a2e082064ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/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":"edb10cfb08416f06be35a2e082064ea7"} device-1 | {"level":"info","message":"POST /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/websocket 200 27ms","method":"POST","requestID":"edb10cfb08416f06be35a2e082064ea7","responseTime":27,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1889bab6d4fc08a250aeef3b3a1afbcb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.07877,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"1889bab6d4fc08a250aeef3b3a1afbcb"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.334220782Z"}]},"request_id":"c7bc70ad-c1cf-446c-ba77-994eac1c2457","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.4790418} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1889bab6d4fc08a250aeef3b3a1afbcb"},"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 200 17ms","method":"GET","requestID":"1889bab6d4fc08a250aeef3b3a1afbcb","responseTime":17,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 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":"1889bab6d4fc08a250aeef3b3a1afbcb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1f1a4ded8e28f4690c17c0ef130d5820","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.265343,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"1f1a4ded8e28f4690c17c0ef130d5820"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.384224286Z"}]},"request_id":"6e7a6a5d-86d3-4d98-93a2-25cc43ebf935","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.502139} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f1a4ded8e28f4690c17c0ef130d5820"},"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":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/145864c2-e82d-4a3c-a264-b1526ba96a59? 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":"1f1a4ded8e28f4690c17c0ef130d5820"} device-1 | {"level":"info","message":"GET /devices/145864c2-e82d-4a3c-a264-b1526ba96a59? 200 16ms","method":"GET","requestID":"1f1a4ded8e28f4690c17c0ef130d5820","responseTime":16,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a6839589757e435e0605d543923b752a","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:57580","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.153391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"a6839589757e435e0605d543923b752a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"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:57580","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.87591,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f9156c20-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.413041,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f915e150-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.334220782Z"}]},"request_id":"f2c03324-de32-4e26-98d9-974882a76807","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.5682225} 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":"f9156c20-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.384224286Z"}]},"request_id":"96d98725-b6dc-41b3-903d-4f9691ab142e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.5738947} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 200 21ms","method":"GET","requestID":"f9156c20-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f915e150-2a6c-11ef-91df-9f2f583abbec"},"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/145864c2-e82d-4a3c-a264-b1526ba96a59? 200 22ms","method":"GET","requestID":"f915e150-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"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/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.845544,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f9204190-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.338105,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f920b6c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34f9c9a9-21ae-42a5-a301-0c113b8a9c0b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6421525} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.414261,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","rebac_allow":false,"scope_allow":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":"f9212bf0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.384224286Z"}]},"request_id":"80137103-1091-466d-8f5e-2d88e22dc0f8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6473856} 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":"f920b6c0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.334220782Z"}]},"request_id":"5d13cb8f-88ed-45c2-90b1-246dfa716b90","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.650953} device-1 | {"level":"info","message":"POST /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling 200 21ms","method":"POST","requestID":"f9212bf0-2a6c-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/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":"f9204190-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6799dac5-9931-470b-8dd8-a7a410fc97d9#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6799dac5-9931-470b-8dd8-a7a410fc97d9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"c40d2ef8-5d4a-482d-991a-14edf2ebb9fb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.659789} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3f312fd-1217-4587-be9d-064a5bbde210","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6603324} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/145864c2-e82d-4a3c-a264-b1526ba96a59? 200 37ms","method":"GET","requestID":"f920b6c0-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59?"} 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":"a6839589757e435e0605d543923b752a"},"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:57580","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} device-1 | {"level":"info","message":"GET /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 200 42ms","method":"GET","requestID":"f9204190-2a6c-11ef-91df-9f2f583abbec","responseTime":42,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a10de8e0-6c69-47fd-a9c7-af9a767cb9ea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6733017} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":9.248021,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","rebac_allow":false,"scope_allow":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":"f9252390-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a6839589757e435e0605d543923b752a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 166ms","method":"POST","requestID":"a6839589757e435e0605d543923b752a","responseTime":166,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling 200 26ms","method":"POST","requestID":"f9252390-2a6c-11ef-91df-9f2f583abbec","responseTime":26,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06827740-4ea7-45fe-8f27-093cfa554a35","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6830254} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.939596,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","rebac_allow":false,"scope_allow":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":"f927e2b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling 200 14ms","method":"POST","requestID":"f927e2b0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3cfcb3d3014690b65ebab7b22596a620","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:57580","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.525569,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"3cfcb3d3014690b65ebab7b22596a620"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75e320b1-bf27-4ae5-8b70-d184b3db4e5e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.6983964} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.978698,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","rebac_allow":false,"scope_allow":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":"f92a7ac0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.334220782Z"}]},"request_id":"ac715a68-cd7b-4e7b-b402-b289262e2ffd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.701887} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3cfcb3d3014690b65ebab7b22596a620"},"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/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling 200 14ms","method":"POST","requestID":"f92a7ac0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 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":"3cfcb3d3014690b65ebab7b22596a620"} device-1 | {"level":"info","message":"GET /devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39? 200 17ms","method":"GET","requestID":"3cfcb3d3014690b65ebab7b22596a620","responseTime":17,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"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":"549f7f8d-836b-4043-a9f9-0911fa04cda4"},{"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":"32a6548c-c91f-42a9-bf9b-0da4319cc7b7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e4ea74a4-8358-4a33-a966-4e340b53b9c8"}]},"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/145864c2-e82d-4a3c-a264-b1526ba96a59"},{"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fb662a319659e27cc2e9d1d4cbb8bf05","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.871756,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f92d12d0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.792565,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"fb662a319659e27cc2e9d1d4cbb8bf05"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:37.384224286Z"}]},"request_id":"a670f730-117a-42d6-bd18-678fa4b430c8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.7256868} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fb662a319659e27cc2e9d1d4cbb8bf05"},"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":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/145864c2-e82d-4a3c-a264-b1526ba96a59? 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":"fb662a319659e27cc2e9d1d4cbb8bf05"} device-1 | {"level":"info","message":"GET /devices/145864c2-e82d-4a3c-a264-b1526ba96a59? 200 17ms","method":"GET","requestID":"fb662a319659e27cc2e9d1d4cbb8bf05","responseTime":17,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"83fcbfa1-a906-4d34-8403-2f8c5cc99430","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.7313862} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"8e50d81c-b822-4214-9b88-9c53379b6c9f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.7318518} 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":"f92d12d0-2a6c-11ef-91df-9f2f583abbec"},"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/4445cf86-9cdf-44d2-9abc-f12b806a69b8'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8'"} 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":"f92d12d0-2a6c-11ef-91df-9f2f583abbec","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4ab6a3ba-9248-40db-94ef-abe6d0823110","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.7807822} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.482127,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","rebac_allow":false,"scope_allow":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":"f9374c00-2a6c-11ef-91df-9f2f583abbec"},"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling 200 9ms","method":"POST","requestID":"f9374c00-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e936847f-eae7-4c85-9a1e-788ae3d33afb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.7911756} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.999759,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","rebac_allow":false,"scope_allow":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":"f938f9b0-2a6c-11ef-91df-9f2f583abbec"},"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/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling 200 8ms","method":"POST","requestID":"f938f9b0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e8329b6b0f511ab8a6d7d13fceac5b1e","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":"new","url":"http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59"},{"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e8329b6b0f511ab8a6d7d13fceac5b1e","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"e8329b6b0f511ab8a6d7d13fceac5b1e"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","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/4445cf86-9cdf-44d2-9abc-f12b806a69b8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","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":"ee71cec126f87732a8e0e1cd2e3a7a5b","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/145864c2-e82d-4a3c-a264-b1526ba96a59"},{"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4445cf86-9cdf-44d2-9abc-f12b806a69b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e386c76-19ed-4bc1-a76e-e1993bfa35c1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.867} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.09665,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8","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":"f9446b60-2a6c-11ef-91df-9f2f583abbec"},"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/4445cf86-9cdf-44d2-9abc-f12b806a69b8 200 7ms","method":"GET","requestID":"f9446b60-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"ee71cec126f87732a8e0e1cd2e3a7a5b","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee71cec126f87732a8e0e1cd2e3a7a5b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e1e2ee6-255b-496e-baea-becc6672388c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.887674} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.093674,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f9479fb0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling 200 8ms","method":"POST","requestID":"f9479fb0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04b07a1a-aacb-4b90-ac6e-9219b656080c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.896907} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.53621,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","rebac_allow":false,"scope_allow":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":"f9492650-2a6c-11ef-91df-9f2f583abbec"},"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling 200 8ms","method":"POST","requestID":"f9492650-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f2a773036cc771b328bbc89bd1efa239","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.676825,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f2a773036cc771b328bbc89bd1efa239"},"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/6799dac5-9931-470b-8dd8-a7a410fc97d9"} gateway-1 | {"time_local":"14/Jun/2024:16:41:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f2a773036cc771b328bbc89bd1efa239"} experiment-1 | {"level":"info","message":"GET /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9 200 10ms","method":"GET","requestID":"f2a773036cc771b328bbc89bd1efa239","responseTime":10,"status":200,"url":"/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9fd52acc7a1dd3552c1895b4a042de97","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.730191,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"9fd52acc7a1dd3552c1895b4a042de97"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.147975,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383299,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzI5OX0.USdEhLgRy1-WZTPpRh05Ng5E6L9sBP1K3JGarKRUKuc"} 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":"f953ada0-2a6c-11ef-91df-9f2f583abbec"},"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/4445cf86-9cdf-44d2-9abc-f12b806a69b8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4445cf86-9cdf-44d2-9abc-f12b806a69b8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4445cf86-9cdf-44d2-9abc-f12b806a69b8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"8b23e9d0-152b-41af-9f43-4590bafba4eb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.9783268} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a3b9c85-2c6c-45f9-9644-7e6103536ba2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383299.9785602} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"88bb9e41e69f81e0facc4174bfd75434","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":"f953ada0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/145864c2-e82d-4a3c-a264-b1526ba96a59"},{"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"}}},"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":"7272207feb8dfa2dfc8b2ffe4baf9253","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59"},{"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4445cf86-9cdf-44d2-9abc-f12b806a69b8","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/4445cf86-9cdf-44d2-9abc-f12b806a69b8 204 36ms","method":"DELETE","requestID":"f953ada0-2a6c-11ef-91df-9f2f583abbec","responseTime":36,"status":204,"url":"/peerconnections/4445cf86-9cdf-44d2-9abc-f12b806a69b8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F145864c2-e82d-4a3c-a264-b1526ba96a59","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26e59d3b-233e-4177-9afc-a0496f080832","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.0262568} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.908095,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59","object_type":"device","rebac_allow":false,"scope_allow":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":"f95c8740-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6799dac5-9931-470b-8dd8-a7a410fc97d9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6799dac5-9931-470b-8dd8-a7a410fc97d9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"8d0e749a-0c58-4460-a530-f3f0146b7cd1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.0309937} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9743717f-a112-4d83-8eba-b49389706be2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.0312617} device-1 | {"level":"info","message":"POST /devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling 200 12ms","method":"POST","requestID":"f95c8740-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/145864c2-e82d-4a3c-a264-b1526ba96a59/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9fd52acc7a1dd3552c1895b4a042de97"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7791e3aa-85bb-4f8e-8646-bc8fe500a4e9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.0397854} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.594037,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39","object_type":"device","rebac_allow":false,"scope_allow":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":"f95eaa20-2a6c-11ef-91df-9f2f583abbec"},"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling 200 9ms","method":"POST","requestID":"f95eaa20-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"} gateway-1 | {"time_local":"14/Jun/2024:16:41:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9fd52acc7a1dd3552c1895b4a042de97"} experiment-1 | {"level":"info","message":"DELETE /experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9 204 144ms","method":"DELETE","requestID":"9fd52acc7a1dd3552c1895b4a042de97","responseTime":144,"status":204,"url":"/experiments/6799dac5-9931-470b-8dd8-a7a410fc97d9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"88bb9e41e69f81e0facc4174bfd75434","responseTime":118,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.121","http_referrer":"","http_user_agent":"node-fetch","requestID":"88bb9e41e69f81e0facc4174bfd75434"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"7272207feb8dfa2dfc8b2ffe4baf9253","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.122","http_referrer":"","http_user_agent":"node-fetch","requestID":"7272207feb8dfa2dfc8b2ffe4baf9253"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMH0.EpDW39IS2SYQNAyZTedkBT57aiRwqwtTC69bbUoOGwY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"beb895c10c60f50f017ff39c5ee823ae","responseTime":8,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2850","request_time":"0.665","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46858745fa599be2ab74f7a20920a587"} gateway-1 | {"time_local":"14/Jun/2024:16:41:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2848","request_time":"0.701","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f98e4814827fa725cbfc20094cc55af5"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.745446,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:40Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/145864c2-e82d-4a3c-a264-b1526ba96a59' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383300,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMH0.EpDW39IS2SYQNAyZTedkBT57aiRwqwtTC69bbUoOGwY"} 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":"beb895c10c60f50f017ff39c5ee823ae"},"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/2a9cfd77-6d54-4c97-9b08-46fd92bb1b39' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"22aa4a3e-a8e9-4d50-bbb9-def246c3a261","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1314807} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"beb895c10c60f50f017ff39c5ee823ae"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6621b886-3864-48d9-99a9-f3bfac75f5fc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1356573} 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":"beb895c10c60f50f017ff39c5ee823ae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"70096d67-acf9-4e57-a4af-d126134da0ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.143868} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"71d0e0af-bbc2-411f-9724-31adb6bc3f0b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.14413} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"beb895c10c60f50f017ff39c5ee823ae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.143836399Z"}]},"request_id":"a9f6a66d-025c-45fb-ae79-9842189c0b65","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1485887} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"beb895c10c60f50f017ff39c5ee823ae"},"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":"14/Jun/2024:16:41:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"beb895c10c60f50f017ff39c5ee823ae"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"beb895c10c60f50f017ff39c5ee823ae","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMH0.EpDW39IS2SYQNAyZTedkBT57aiRwqwtTC69bbUoOGwY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6f377ed0c08e815d02e936038a21c178","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.725792,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383300,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMH0.EpDW39IS2SYQNAyZTedkBT57aiRwqwtTC69bbUoOGwY"} 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":"6f377ed0c08e815d02e936038a21c178"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2433f62a-6dc0-41ec-9bf5-7ec04d0428d5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1733} 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":"6f377ed0c08e815d02e936038a21c178"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"535408ed-25d9-4144-ae9e-45df0f1d3b5a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1779897} 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":"6f377ed0c08e815d02e936038a21c178"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"1ce1685a-e28b-41d3-8dd1-ea6342fa754d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1940057} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c23be8d-4134-426d-b41b-06115f238fef","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1940682} 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":"6f377ed0c08e815d02e936038a21c178"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.193984463Z"}]},"request_id":"a3f45300-9b61-46eb-93b7-6811ada02a86","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383300.1975358} 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":"6f377ed0c08e815d02e936038a21c178"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"6f377ed0c08e815d02e936038a21c178","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6f377ed0c08e815d02e936038a21c178"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2a2e101917183cdb2f9498d26e6c2c81","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/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":"2a2e101917183cdb2f9498d26e6c2c81"} device-1 | {"level":"info","message":"OPTIONS /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/websocket 200 1ms","method":"OPTIONS","requestID":"2a2e101917183cdb2f9498d26e6c2c81","responseTime":1,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"53f55074763f00162116487f8659d461","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.375328,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"53f55074763f00162116487f8659d461"},"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":"a49fcbd2537c9f91e6a18a711ef43c9c","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/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":"a49fcbd2537c9f91e6a18a711ef43c9c"} device-1 | {"level":"info","message":"OPTIONS /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/websocket 200 1ms","method":"OPTIONS","requestID":"a49fcbd2537c9f91e6a18a711ef43c9c","responseTime":1,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"53f55074763f00162116487f8659d461"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/websocket 200 24ms","method":"POST","requestID":"53f55074763f00162116487f8659d461","responseTime":24,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"c4a52356757ae92a5eadc49a89006c9a","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933893,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"c4a52356757ae92a5eadc49a89006c9a"},"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":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c4a52356757ae92a5eadc49a89006c9a"} device-1 | {"level":"info","message":"POST /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/websocket 200 17ms","method":"POST","requestID":"c4a52356757ae92a5eadc49a89006c9a","responseTime":17,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2334e65b3988976aed85be0f3e82c63e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.190319,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"2334e65b3988976aed85be0f3e82c63e"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.143836399Z"}]},"request_id":"bc006b98-abb1-48f2-8d08-dcab3f1b466c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.2350855} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2334e65b3988976aed85be0f3e82c63e"},"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":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c0084648-4d1d-4cdd-8421-cabb0b460002? 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":"2334e65b3988976aed85be0f3e82c63e"} device-1 | {"level":"info","message":"GET /devices/c0084648-4d1d-4cdd-8421-cabb0b460002? 200 20ms","method":"GET","requestID":"2334e65b3988976aed85be0f3e82c63e","responseTime":20,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"68708d43402bd6eb4f8bcb0d12271ae0","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336181,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"68708d43402bd6eb4f8bcb0d12271ae0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.193984463Z"}]},"request_id":"1533f78d-5199-4e16-9987-0557f48d9eff","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.2626252} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"68708d43402bd6eb4f8bcb0d12271ae0"},"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 200 18ms","method":"GET","requestID":"68708d43402bd6eb4f8bcb0d12271ae0","responseTime":18,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 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":"68708d43402bd6eb4f8bcb0d12271ae0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79b9ad266e3c387732d14de2229fe5c2","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:57580","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.160764,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"79b9ad266e3c387732d14de2229fe5c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"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:57580","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.475254,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"fabb2ce0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.038121,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"fabb7b00-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.143836399Z"}]},"request_id":"eebcf574-18e2-41f5-b2ec-01449afdaaa3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.3276033} 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":"fabb2ce0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.193984463Z"}]},"request_id":"968383d8-71e0-4b31-93b9-16425c5d7c17","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.3284569} 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":"fabb7b00-2a6c-11ef-91df-9f2f583abbec"},"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/c0084648-4d1d-4cdd-8421-cabb0b460002? 200 17ms","method":"GET","requestID":"fabb2ce0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 200 16ms","method":"GET","requestID":"fabb7b00-2a6c-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"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/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.84665,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"fac62960-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.726014,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"fac67780-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.933868,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"39da2a1f-c484-413a-8a2a-444a206ff297","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4016802} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","rebac_allow":false,"scope_allow":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":"fac6ecb0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.143836399Z"}]},"request_id":"54770df6-074e-451e-b354-5c3e2f332837","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4035711} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fac62960-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.193984463Z"}]},"request_id":"22cf127e-0328-477d-b750-bfcf26719803","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4061308} device-1 | {"level":"info","message":"POST /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling 200 12ms","method":"POST","requestID":"fac6ecb0-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/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":"fac67780-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c0084648-4d1d-4cdd-8421-cabb0b460002? 200 25ms","method":"GET","requestID":"fac62960-2a6c-11ef-91df-9f2f583abbec","responseTime":25,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 200 24ms","method":"GET","requestID":"fac67780-2a6c-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b220cf75-12fd-4f1b-a887-fb2b89561251","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4174244} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.391684,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"fac984c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58ed1d7b-db3b-4042-b7fc-5774e7cd3d16#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"87962216-348d-425f-a77f-0b162dfac43a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4183867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6aa20549-a37e-40bf-bd39-3e2c77339165","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.418655} 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":"79b9ad266e3c387732d14de2229fe5c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling 200 10ms","method":"POST","requestID":"fac984c0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92f0f7ce-4b0f-4638-8c68-99641c50cdc9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4244893} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.448908,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"faca6f20-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"79b9ad266e3c387732d14de2229fe5c2"} experiment-1 | {"level":"info","message":"POST /experiments? 201 151ms","method":"POST","requestID":"79b9ad266e3c387732d14de2229fe5c2","responseTime":151,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling 200 11ms","method":"POST","requestID":"faca6f20-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3ac8847a573467639d9081c26f644ef2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.230608,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"084a520c-b055-4452-a8a2-b107a198e400","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4363} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","rebac_allow":false,"scope_allow":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":"facc6af0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling 200 14ms","method":"POST","requestID":"facc6af0-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.419295,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"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":"3b61bb2d-0aec-4c12-8afb-3fc748320abc"},{"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":"6c37ac2d-aacd-4115-9bde-bf6431ac02c3"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"dbf52e21-2821-48f1-97a0-5454ec089a0d"}]},"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/c0084648-4d1d-4cdd-8421-cabb0b460002"},{"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"3ac8847a573467639d9081c26f644ef2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.143836399Z"}]},"request_id":"9adc4cce-e2dd-4485-901d-b2f415fec252","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.451283} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ac8847a573467639d9081c26f644ef2"},"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:57580","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.71734,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"facf2a10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c0084648-4d1d-4cdd-8421-cabb0b460002? 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":"3ac8847a573467639d9081c26f644ef2"} device-1 | {"level":"info","message":"GET /devices/c0084648-4d1d-4cdd-8421-cabb0b460002? 200 20ms","method":"GET","requestID":"3ac8847a573467639d9081c26f644ef2","responseTime":20,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"417e908b0ebb7450c535203df9a6aa93","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"55ba9034-4931-491d-8718-63d663f06096","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4659774} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"76c036a0-23ce-4a84-8b94-f378c89cae58","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.4662368} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740915,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} 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":"facf2a10-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"417e908b0ebb7450c535203df9a6aa93"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:40.193984463Z"}]},"request_id":"d7473554-ead7-4c7f-af85-3ead21eefc8e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.472577} 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":"417e908b0ebb7450c535203df9a6aa93"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237'"} 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 33ms","method":"POST","requestID":"facf2a10-2a6c-11ef-91df-9f2f583abbec","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 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":"417e908b0ebb7450c535203df9a6aa93"} device-1 | {"level":"info","message":"GET /devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9? 200 19ms","method":"GET","requestID":"417e908b0ebb7450c535203df9a6aa93","responseTime":19,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02f4e054-0174-48e7-8b57-85cb507b3b80","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.5114076} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.668199,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","rebac_allow":false,"scope_allow":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":"fad803b0-2a6c-11ef-91df-9f2f583abbec"},"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/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling 200 8ms","method":"POST","requestID":"fad803b0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bad6e9b8-c3c5-49f3-8c0d-6afbbd830d91","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.5221615} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.692526,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"fad98a50-2a6c-11ef-91df-9f2f583abbec"},"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling 200 9ms","method":"POST","requestID":"fad98a50-2a6c-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"85d786a352a4f087146930f7450cbe2f","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":"new","url":"http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002"},{"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"85d786a352a4f087146930f7450cbe2f","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"85d786a352a4f087146930f7450cbe2f"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","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/60cf55bf-f705-4573-96ef-cfc7b4035237' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","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":"de657178f52d0e962c6632e70e8dcffc","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/c0084648-4d1d-4cdd-8421-cabb0b460002"},{"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60cf55bf-f705-4573-96ef-cfc7b4035237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c814de14-e698-4d35-84b6-1510ff2b30ac","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.596205} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.056509,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237","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":"fae4fc00-2a6c-11ef-91df-9f2f583abbec"},"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/60cf55bf-f705-4573-96ef-cfc7b4035237 200 7ms","method":"GET","requestID":"fae4fc00-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"de657178f52d0e962c6632e70e8dcffc","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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":"de657178f52d0e962c6632e70e8dcffc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"692216b0-21a9-4f44-ba9b-5a40215b4507","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.6241722} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.166311,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","rebac_allow":false,"scope_allow":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":"fae941c0-2a6c-11ef-91df-9f2f583abbec"},"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/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling 200 7ms","method":"POST","requestID":"fae941c0-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d169d365-a51c-40cd-84ed-ca36005f8d3f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.6333823} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.384368,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","rebac_allow":false,"scope_allow":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":"faeaa150-2a6c-11ef-91df-9f2f583abbec"},"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling 200 8ms","method":"POST","requestID":"faeaa150-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8c6e66083f6c1a70d93e65714f714397","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.957421,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"8c6e66083f6c1a70d93e65714f714397"},"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/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c6e66083f6c1a70d93e65714f714397"} experiment-1 | {"level":"info","message":"GET /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16 200 14ms","method":"GET","requestID":"8c6e66083f6c1a70d93e65714f714397","responseTime":14,"status":200,"url":"/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9df48d8f8061baba905f99cb7a1d6a60","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.425977,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"9df48d8f8061baba905f99cb7a1d6a60"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.247831,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"faf74b80-2a6c-11ef-91df-9f2f583abbec"},"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/60cf55bf-f705-4573-96ef-cfc7b4035237' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60cf55bf-f705-4573-96ef-cfc7b4035237': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60cf55bf-f705-4573-96ef-cfc7b4035237","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"4ac6d7ad-96ed-42c7-90db-6d7e78b15df3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7365572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"07bad659-99d8-4a6e-ad2a-6af796da0b0c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7369506} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"97db43a9115f09b3c33074b589908680","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002"},{"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"}}},"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 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":"faf74b80-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2e3ef03e06b3f797b91a77e4d07583d5","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/c0084648-4d1d-4cdd-8421-cabb0b460002"},{"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"60cf55bf-f705-4573-96ef-cfc7b4035237","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/60cf55bf-f705-4573-96ef-cfc7b4035237 204 45ms","method":"DELETE","requestID":"faf74b80-2a6c-11ef-91df-9f2f583abbec","responseTime":45,"status":204,"url":"/peerconnections/60cf55bf-f705-4573-96ef-cfc7b4035237"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0084648-4d1d-4cdd-8421-cabb0b460002","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90cd5294-c0ff-4ad9-a775-31fcd86ad865","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7836316} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.083524,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0084648-4d1d-4cdd-8421-cabb0b460002","object_type":"device","rebac_allow":false,"scope_allow":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":"fb013690-2a6c-11ef-91df-9f2f583abbec"},"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/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling 200 12ms","method":"POST","requestID":"fb013690-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/c0084648-4d1d-4cdd-8421-cabb0b460002/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58ed1d7b-db3b-4042-b7fc-5774e7cd3d16': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58ed1d7b-db3b-4042-b7fc-5774e7cd3d16","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"ccd4d5a7-b187-4fed-b9e3-17d6beaa6118","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7900388} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18d88941-e9aa-4106-b51f-407c34371aa2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7905002} 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":"9df48d8f8061baba905f99cb7a1d6a60"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4ed0d98d-2c0a-4730-af78-fbe3c51975f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e7a06ac-5e53-40ff-8439-62c45d9a95ea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.7984927} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.450797,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9","object_type":"device","rebac_allow":false,"scope_allow":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":"fb038080-2a6c-11ef-91df-9f2f583abbec"},"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/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling 200 12ms","method":"POST","requestID":"fb038080-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9df48d8f8061baba905f99cb7a1d6a60"} experiment-1 | {"level":"info","message":"DELETE /experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16 204 160ms","method":"DELETE","requestID":"9df48d8f8061baba905f99cb7a1d6a60","responseTime":160,"status":204,"url":"/experiments/58ed1d7b-db3b-4042-b7fc-5774e7cd3d16"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"97db43a9115f09b3c33074b589908680","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"97db43a9115f09b3c33074b589908680"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"2e3ef03e06b3f797b91a77e4d07583d5","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"2e3ef03e06b3f797b91a77e4d07583d5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c11e8189a7b24b94b55ac97155c30fa0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2850","request_time":"0.682","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"350849e80125d07fb1318a4550863deb"} gateway-1 | {"time_local":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2848","request_time":"0.665","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6e2f18c045c2ed9ce753a90923bd098b"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.890614,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4ed0d98d-2c0a-4730-af78-fbe3c51975f9' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"c11e8189a7b24b94b55ac97155c30fa0"},"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/c0084648-4d1d-4cdd-8421-cabb0b460002' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"06ec5ee1-f386-45f7-bc01-de261fba4af4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.8930933} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c11e8189a7b24b94b55ac97155c30fa0"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a9826a0-e026-4954-ad9a-3ef3595d00d7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.898046} 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":"c11e8189a7b24b94b55ac97155c30fa0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"d0ef2f0b-350f-48e9-aa01-def62eaf2f7f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.907989} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"daa17f73-7a6e-42a2-b8a2-c39828572b20","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9082844} 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":"c11e8189a7b24b94b55ac97155c30fa0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.907955401Z"}]},"request_id":"ebb48215-5f84-4e88-8d8c-69ecdb89380b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9126875} 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":"c11e8189a7b24b94b55ac97155c30fa0"},"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":"14/Jun/2024:16:41:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c11e8189a7b24b94b55ac97155c30fa0"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"c11e8189a7b24b94b55ac97155c30fa0","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"74560dfbc81d735f18ca1418bd4d226e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.870938,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383302,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwMn0.j-pmbN8VSF1pnxQLnlawVG823-Q9pwm8_3JCOgx41Bk"} 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":"74560dfbc81d735f18ca1418bd4d226e"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e5c1e92d-7ac5-40f4-bd0d-c474f87f44c7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9373214} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"74560dfbc81d735f18ca1418bd4d226e"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6dc20db7-3167-4a06-8122-5021cf6c6267","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9426265} 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":"74560dfbc81d735f18ca1418bd4d226e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"952e4a44-3d3b-4099-8dac-353d88708f03","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.958435} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ce59d8a7-a6ad-4d73-9fc5-f6a1f5eaab96","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9585936} 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":"74560dfbc81d735f18ca1418bd4d226e"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"4bc992a9-8a1c-430f-ad96-5f663a59f013","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383302.9635153} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"74560dfbc81d735f18ca1418bd4d226e"},"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":"74560dfbc81d735f18ca1418bd4d226e","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"74560dfbc81d735f18ca1418bd4d226e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwM30.OqIKkIv9Th_3zqU_VHgFgdpXyy4NSq3rcwolmWzp9L4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"796ae9e366934b44bb9affee87510c1d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:43Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.856825,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383303,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwM30.OqIKkIv9Th_3zqU_VHgFgdpXyy4NSq3rcwolmWzp9L4"} 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":"796ae9e366934b44bb9affee87510c1d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"a98ade51-b99b-4a02-a7eb-f8aa7697891f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383303.4634833} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"796ae9e366934b44bb9affee87510c1d"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18587102-a834-482b-bf97-bcd351257325","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383303.4689977} 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":"796ae9e366934b44bb9affee87510c1d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"c897ad7d-95c3-46d0-bca6-6ee9154ca58b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383303.4819915} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"796ae9e366934b44bb9affee87510c1d"},"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":"14/Jun/2024:16:41:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/49d8524b-f317-4b38-ad24-b36a388898e0 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"796ae9e366934b44bb9affee87510c1d"} device-1 | {"level":"info","message":"PATCH /devices/49d8524b-f317-4b38-ad24-b36a388898e0 200 33ms","method":"PATCH","requestID":"796ae9e366934b44bb9affee87510c1d","responseTime":33,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwM30.OqIKkIv9Th_3zqU_VHgFgdpXyy4NSq3rcwolmWzp9L4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3e0409008036130cf2a98e5a9dc9e18f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:43Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669612,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383303,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwM30.OqIKkIv9Th_3zqU_VHgFgdpXyy4NSq3rcwolmWzp9L4"} 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":"3e0409008036130cf2a98e5a9dc9e18f"},"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":"14/Jun/2024:16:41:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/49d8524b-f317-4b38-ad24-b36a388898e0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3e0409008036130cf2a98e5a9dc9e18f"} device-1 | {"level":"info","message":"POST /devices/49d8524b-f317-4b38-ad24-b36a388898e0/websocket 200 15ms","method":"POST","requestID":"3e0409008036130cf2a98e5a9dc9e18f","responseTime":15,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0' 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":"557133ee4d35c3ba018bf4ca234a4d4c","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/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":"557133ee4d35c3ba018bf4ca234a4d4c"} device-1 | {"level":"info","message":"OPTIONS /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/websocket 200 1ms","method":"OPTIONS","requestID":"557133ee4d35c3ba018bf4ca234a4d4c","responseTime":1,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNH0.cjxXt3pFLgB0BlkohV7Arws32PfqbyE0_P2WIV5_zm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cdae5f2308d3cb30566d99aa97bbb8fc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:44Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.239928,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383304,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNH0.cjxXt3pFLgB0BlkohV7Arws32PfqbyE0_P2WIV5_zm4"} 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":"cdae5f2308d3cb30566d99aa97bbb8fc"},"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":"14/Jun/2024:16:41:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cdae5f2308d3cb30566d99aa97bbb8fc"} device-1 | {"level":"info","message":"POST /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/websocket 200 23ms","method":"POST","requestID":"cdae5f2308d3cb30566d99aa97bbb8fc","responseTime":23,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNH0.cjxXt3pFLgB0BlkohV7Arws32PfqbyE0_P2WIV5_zm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0fd18653950f3a4245553f9ead12ac63","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:44Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.250465,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383304,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNH0.cjxXt3pFLgB0BlkohV7Arws32PfqbyE0_P2WIV5_zm4"} 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":"0fd18653950f3a4245553f9ead12ac63"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.907955401Z"}]},"request_id":"3295b99c-ce1b-43f3-8e40-fdf008743539","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.0023096} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0fd18653950f3a4245553f9ead12ac63"},"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":"14/Jun/2024:16:41:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7a285c31-95b9-4b6e-bb46-408db12456e9? 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":"0fd18653950f3a4245553f9ead12ac63"} device-1 | {"level":"info","message":"GET /devices/7a285c31-95b9-4b6e-bb46-408db12456e9? 200 18ms","method":"GET","requestID":"0fd18653950f3a4245553f9ead12ac63","responseTime":18,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2c30ec1e458e1d62a925867e13b0d9ba","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174809,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"2c30ec1e458e1d62a925867e13b0d9ba"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"a5d7d55c-242a-40a7-b406-b9c6ab086b07","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.0268545} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2c30ec1e458e1d62a925867e13b0d9ba"},"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/49d8524b-f317-4b38-ad24-b36a388898e0? 200 17ms","method":"GET","requestID":"2c30ec1e458e1d62a925867e13b0d9ba","responseTime":17,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/49d8524b-f317-4b38-ad24-b36a388898e0? 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":"2c30ec1e458e1d62a925867e13b0d9ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b581589656e950616a4484836c724a16","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:57580","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.217688,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"b581589656e950616a4484836c724a16"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"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:57580","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.820673,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"fc6114b0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.381765,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"fc6162d0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.907955401Z"}]},"request_id":"46b4c369-fe8f-4bba-8a33-fd007ef1f872","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.0945666} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc6114b0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"6b206ed3-c916-4dd9-b5d1-7aca4c8df79c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.0960743} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc6162d0-2a6c-11ef-91df-9f2f583abbec"},"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/7a285c31-95b9-4b6e-bb46-408db12456e9? 200 17ms","method":"GET","requestID":"fc6114b0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/49d8524b-f317-4b38-ad24-b36a388898e0? 200 17ms","method":"GET","requestID":"fc6162d0-2a6c-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"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:57580","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.915653,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"fc6b74f0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.021488,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"fc6bc310-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.318098,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3e0e8c0b-3d68-4f54-b1d5-d9bb9ce0a7b8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1642642} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","rebac_allow":false,"scope_allow":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":"fc6c1130-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.907955401Z"}]},"request_id":"5bd65efa-4969-4428-89d9-16debf83bb23","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1657226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"724c4fa1-2dbc-4dd0-8b95-d47d66310dea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1670594} 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":"fc6b74f0-2a6c-11ef-91df-9f2f583abbec"},"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 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc6bc310-2a6c-11ef-91df-9f2f583abbec"},"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/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling 200 18ms","method":"POST","requestID":"fc6c1130-2a6c-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7a285c31-95b9-4b6e-bb46-408db12456e9? 200 23ms","method":"GET","requestID":"fc6b74f0-2a6c-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/49d8524b-f317-4b38-ad24-b36a388898e0? 200 22ms","method":"GET","requestID":"fc6bc310-2a6c-11ef-91df-9f2f583abbec","responseTime":22,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fe12eeb-4799-4413-84ad-a84c479648fb#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fe12eeb-4799-4413-84ad-a84c479648fb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"4068d903-c50a-4855-8509-0813192c7b15","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1787872} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5765c18b-28c2-4ce8-acd8-41efadf488c6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1790957} 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":"b581589656e950616a4484836c724a16"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"070df00c-6f41-4c9e-ba77-688e90e85c34","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.182009} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.509085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","rebac_allow":false,"scope_allow":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":"fc6f4580-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09696e76-b725-47c2-aa71-a636c4b35a6d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1863005} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.011976,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"fc6fe1c0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"POST /devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling 200 12ms","method":"POST","requestID":"fc6f4580-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling"} gateway-1 | {"time_local":"14/Jun/2024:16:41:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.154","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b581589656e950616a4484836c724a16"} experiment-1 | {"level":"info","message":"POST /experiments? 201 148ms","method":"POST","requestID":"b581589656e950616a4484836c724a16","responseTime":148,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling 200 11ms","method":"POST","requestID":"fc6fe1c0-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg","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":"1c1bafbf1b57cb633723e27cbb3a3dc4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718963,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"1c1bafbf1b57cb633723e27cbb3a3dc4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f2553f70-9c06-42a2-9c5e-cf73b5b9c38f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.1991272} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.975788,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","rebac_allow":false,"scope_allow":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":"fc71dd90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.907955401Z"}]},"request_id":"74971999-c702-435f-aea1-201b70e88345","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2050297} device-1 | {"level":"info","message":"POST /devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling 200 12ms","method":"POST","requestID":"fc71dd90-2a6c-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"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":"d3f4fe38-5c42-4c70-95f0-dd7687e442ab"},{"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":"4d5abc02-30dd-4a61-8ee1-ea47502d6996"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"79d991d8-8f09-4126-a192-23e605e2e29a"}]},"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":"1c1bafbf1b57cb633723e27cbb3a3dc4"},"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":[{"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/7a285c31-95b9-4b6e-bb46-408db12456e9"},{"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/49d8524b-f317-4b38-ad24-b36a388898e0"}],"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":"14/Jun/2024:16:41:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7a285c31-95b9-4b6e-bb46-408db12456e9? 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":"1c1bafbf1b57cb633723e27cbb3a3dc4"} device-1 | {"level":"info","message":"GET /devices/7a285c31-95b9-4b6e-bb46-408db12456e9? 200 15ms","method":"GET","requestID":"1c1bafbf1b57cb633723e27cbb3a3dc4","responseTime":15,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.802396,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"fc742780-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b8872015da3e5f5812c2bfb21c79ade5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.779458,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383305,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwNX0.8CMzI-SuHXOxADUfN7nDW_GaZEY7WrMIf2TMRRCUFkg"} 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":"b8872015da3e5f5812c2bfb21c79ade5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a55722eb-6511-4df6-a677-18075e830879","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2226725} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d2cd063-e49f-4843-bfe6-27374b2c4a25","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2228618} 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":"fc742780-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:42.958407291Z"}]},"request_id":"e0ab7ed1-425c-455d-a8eb-490f6fee8aa6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2239628} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b8872015da3e5f5812c2bfb21c79ade5"},"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":"14/Jun/2024:16:41:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/49d8524b-f317-4b38-ad24-b36a388898e0? 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":"b8872015da3e5f5812c2bfb21c79ade5"} device-1 | {"level":"info","message":"GET /devices/49d8524b-f317-4b38-ad24-b36a388898e0? 200 22ms","method":"GET","requestID":"b8872015da3e5f5812c2bfb21c79ade5","responseTime":22,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0?"} 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/2b8245ee-5193-45b2-bdca-ea9f3cbba180'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180'"} 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":"fc742780-2a6c-11ef-91df-9f2f583abbec","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2a8def9-97e0-482c-943a-0c55988c5f7a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2726045} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.093245,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","rebac_allow":false,"scope_allow":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":"fc7d2830-2a6c-11ef-91df-9f2f583abbec"},"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/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling 200 10ms","method":"POST","requestID":"fc7d2830-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2bd37120-af01-4258-8f32-83f7738fec6b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383305.2837355} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.22332,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","rebac_allow":false,"scope_allow":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":"fc7efcf0-2a6c-11ef-91df-9f2f583abbec"},"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/49d8524b-f317-4b38-ad24-b36a388898e0/signaling 200 8ms","method":"POST","requestID":"fc7efcf0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","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/2b8245ee-5193-45b2-bdca-ea9f3cbba180' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8ec7cae61f475582e3f3492b041c911f","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/7a285c31-95b9-4b6e-bb46-408db12456e9"},{"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/49d8524b-f317-4b38-ad24-b36a388898e0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"8ec7cae61f475582e3f3492b041c911f","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"8ec7cae61f475582e3f3492b041c911f"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","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/2b8245ee-5193-45b2-bdca-ea9f3cbba180' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","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":"2b475c686bfc855e08f0c259971db42c","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/7a285c31-95b9-4b6e-bb46-408db12456e9"},{"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/49d8524b-f317-4b38-ad24-b36a388898e0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b8245ee-5193-45b2-bdca-ea9f3cbba180","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5007b8c-8acc-44d1-847d-e610f5455241","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.3651938} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.950835,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180","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":"fdbc5ef0-2a6c-11ef-91df-9f2f583abbec"},"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/2b8245ee-5193-45b2-bdca-ea9f3cbba180 200 10ms","method":"GET","requestID":"fdbc5ef0-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"2b475c686bfc855e08f0c259971db42c","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"2b475c686bfc855e08f0c259971db42c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e535b72d-b89f-473c-b877-c4ad855b6c28","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.3901236} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.187616,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"fdc02f80-2a6c-11ef-91df-9f2f583abbec"},"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/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling 200 10ms","method":"POST","requestID":"fdc02f80-2a6c-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1005f0eb-11a6-462d-b71a-a438a742a4ff","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.4020534} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.341487,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"fdc20440-2a6c-11ef-91df-9f2f583abbec"},"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/49d8524b-f317-4b38-ad24-b36a388898e0/signaling 200 11ms","method":"POST","requestID":"fdc20440-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9fc074fa86d27f5b17a159347aebd590","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.194921,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383307,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0"} 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":"9fc074fa86d27f5b17a159347aebd590"},"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/2fe12eeb-4799-4413-84ad-a84c479648fb"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9fc074fa86d27f5b17a159347aebd590"} experiment-1 | {"level":"info","message":"GET /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb 200 19ms","method":"GET","requestID":"9fc074fa86d27f5b17a159347aebd590","responseTime":19,"status":200,"url":"/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b32d77b209b854def2b6d75b7da9c4d3","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.0145,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383307,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0"} 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":"b32d77b209b854def2b6d75b7da9c4d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.306747,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383307,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0"} 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":"fdd14680-2a6c-11ef-91df-9f2f583abbec"},"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/2b8245ee-5193-45b2-bdca-ea9f3cbba180' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b8245ee-5193-45b2-bdca-ea9f3cbba180': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b8245ee-5193-45b2-bdca-ea9f3cbba180","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"170dd407-5297-46cf-898a-2ddb9f1c923b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5214884} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ef28c822-9565-447d-8816-7c79f7b15b2b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5221055} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"00b49119923c84a35b0aac2fbebba047","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)"} 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":"fdd14680-2a6c-11ef-91df-9f2f583abbec"},"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-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/7a285c31-95b9-4b6e-bb46-408db12456e9"},{"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/49d8524b-f317-4b38-ad24-b36a388898e0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"abcdaf135ed0d17547dcdd38f524fc5b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9"},{"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/49d8524b-f317-4b38-ad24-b36a388898e0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"2b8245ee-5193-45b2-bdca-ea9f3cbba180","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/2b8245ee-5193-45b2-bdca-ea9f3cbba180 204 50ms","method":"DELETE","requestID":"fdd14680-2a6c-11ef-91df-9f2f583abbec","responseTime":50,"status":204,"url":"/peerconnections/2b8245ee-5193-45b2-bdca-ea9f3cbba180"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7a285c31-95b9-4b6e-bb46-408db12456e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a8992596-31cf-4124-93b2-898672d3867d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5759006} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.714924,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7a285c31-95b9-4b6e-bb46-408db12456e9","object_type":"device","rebac_allow":false,"scope_allow":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":"fddc9120-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fe12eeb-4799-4413-84ad-a84c479648fb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2fe12eeb-4799-4413-84ad-a84c479648fb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"0c74fab0-bed0-436d-9e9b-27187f2791ea","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5812976} device-1 | {"level":"info","message":"POST /devices/7a285c31-95b9-4b6e-bb46-408db12456e9/signaling 200 11ms","method":"POST","requestID":"fddc9120-2a6c-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/7a285c31-95b9-4b6e-bb46-408db12456e9/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a805ff2-2fd3-4e24-a5ac-47e494348bd4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5818443} 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":"b32d77b209b854def2b6d75b7da9c4d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d8524b-f317-4b38-ad24-b36a388898e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea912bf0-970f-466b-8bf5-95d4b76c8dd4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.5926592} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.176821,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0","object_type":"device","rebac_allow":false,"scope_allow":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":"fddf0220-2a6c-11ef-91df-9f2f583abbec"},"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/49d8524b-f317-4b38-ad24-b36a388898e0/signaling 200 14ms","method":"POST","requestID":"fddf0220-2a6c-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/49d8524b-f317-4b38-ad24-b36a388898e0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b32d77b209b854def2b6d75b7da9c4d3"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2799","request_time":"4.144","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9e4d6c99d7462668ea0a54964ed39b46"} experiment-1 | {"level":"info","message":"DELETE /experiments/2fe12eeb-4799-4413-84ad-a84c479648fb 204 175ms","method":"DELETE","requestID":"b32d77b209b854def2b6d75b7da9c4d3","responseTime":175,"status":204,"url":"/experiments/2fe12eeb-4799-4413-84ad-a84c479648fb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"00b49119923c84a35b0aac2fbebba047","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"00b49119923c84a35b0aac2fbebba047"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"abcdaf135ed0d17547dcdd38f524fc5b","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"abcdaf135ed0d17547dcdd38f524fc5b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9cdcea6292365e0e48ade2cce896466b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.983085,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} gateway-1 | {"time_local":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.701","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"551f85f94f70907f42de4627a763d22a"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383307,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0"} 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":"9cdcea6292365e0e48ade2cce896466b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/49d8524b-f317-4b38-ad24-b36a388898e0' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"06cc664c-3b47-45d9-9e30-de0d07febe68","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.68098} 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":"9cdcea6292365e0e48ade2cce896466b"},"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/7a285c31-95b9-4b6e-bb46-408db12456e9' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c084b2d-a429-4123-a248-84c8a0aa5c6e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.6854348} 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":"9cdcea6292365e0e48ade2cce896466b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"8210ffdb-28c3-4f0e-9329-898e22141eb4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.7002194} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4b2751a-05e3-4f0a-a34d-28ff5bd6f038","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.7003992} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9cdcea6292365e0e48ade2cce896466b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.700197460Z"}]},"request_id":"4df3dcfc-05b5-4a10-9a6e-e55eb45b3b21","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.704614} 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":"9cdcea6292365e0e48ade2cce896466b"},"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":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9cdcea6292365e0e48ade2cce896466b"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"9cdcea6292365e0e48ade2cce896466b","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6fbfcb5a97633b7d241d776b4a39b80c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.647121,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383307,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwN30.TBp2RPT7Don8E_3s1SbgL6PNeIZbyYUcGsqb64POiR0"} 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":"6fbfcb5a97633b7d241d776b4a39b80c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"003fe720-9486-407c-89fc-f1354da16b3a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.7283916} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6fbfcb5a97633b7d241d776b4a39b80c"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d77034e-9961-4d59-87e7-13b67720f7c8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.7329562} 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":"6fbfcb5a97633b7d241d776b4a39b80c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"28a529a6-b4ad-438a-90e1-c119aa0cc6a4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.743374} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6665fa5a-957d-4231-8073-1f6192e24608","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.744048} 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":"6fbfcb5a97633b7d241d776b4a39b80c"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"19298686-0b80-4cb8-9ed1-7b937caca90e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383307.7483513} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6fbfcb5a97633b7d241d776b4a39b80c"},"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":"14/Jun/2024:16:41:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6fbfcb5a97633b7d241d776b4a39b80c"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"6fbfcb5a97633b7d241d776b4a39b80c","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOH0.iJoxFQqRJMMzlSA5EYmUD_nw9l1t5HtnbwRPhrWOucE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"54467ec430e7c0d02a83fdf793a2df0b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968618,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383308,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOH0.iJoxFQqRJMMzlSA5EYmUD_nw9l1t5HtnbwRPhrWOucE"} 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":"54467ec430e7c0d02a83fdf793a2df0b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"de916c63-d272-4032-9730-c2fd88391280","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383308.2419646} 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":"54467ec430e7c0d02a83fdf793a2df0b"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d273c774-499f-4375-8b59-9e0f384f803d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383308.2475314} 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":"54467ec430e7c0d02a83fdf793a2df0b"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"46bcd2be-5232-4f20-ae6a-ef54e14ad0a2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383308.2592525} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"54467ec430e7c0d02a83fdf793a2df0b"},"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":"14/Jun/2024:16:41:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c 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":"54467ec430e7c0d02a83fdf793a2df0b"} device-1 | {"level":"info","message":"PATCH /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c 200 29ms","method":"PATCH","requestID":"54467ec430e7c0d02a83fdf793a2df0b","responseTime":29,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOH0.iJoxFQqRJMMzlSA5EYmUD_nw9l1t5HtnbwRPhrWOucE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cb00a5efff111b380bcfa9e49d1f3f5c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:48Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.13438,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383308,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOH0.iJoxFQqRJMMzlSA5EYmUD_nw9l1t5HtnbwRPhrWOucE"} 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":"cb00a5efff111b380bcfa9e49d1f3f5c"},"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/websocket 200 18ms","method":"POST","requestID":"cb00a5efff111b380bcfa9e49d1f3f5c","responseTime":18,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cb00a5efff111b380bcfa9e49d1f3f5c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c' 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":"b33c873529a996a7cf32ed7994e0e95c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:41:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/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":"b33c873529a996a7cf32ed7994e0e95c"} device-1 | {"level":"info","message":"OPTIONS /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/websocket 200 1ms","method":"OPTIONS","requestID":"b33c873529a996a7cf32ed7994e0e95c","responseTime":1,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3e9604af8c57f44143dceb0b53207c38","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.493855,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"3e9604af8c57f44143dceb0b53207c38"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad/websocket 200 21ms","method":"POST","requestID":"3e9604af8c57f44143dceb0b53207c38","responseTime":21,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3e9604af8c57f44143dceb0b53207c38"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fa541e2c03805144964dd7fc81dfcd96","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.126894,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"fa541e2c03805144964dd7fc81dfcd96"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.700197460Z"}]},"request_id":"bcd578dd-57d8-408b-9efd-fa57c10a9d12","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383309.833007} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa541e2c03805144964dd7fc81dfcd96"},"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":"14/Jun/2024:16:41:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 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":"fa541e2c03805144964dd7fc81dfcd96"} device-1 | {"level":"info","message":"GET /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 200 16ms","method":"GET","requestID":"fa541e2c03805144964dd7fc81dfcd96","responseTime":16,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9c337d4ca9f52fded40443d80e8b81ee","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.154074,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"9c337d4ca9f52fded40443d80e8b81ee"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"a14f6cbd-417d-48a7-9de3-28ae3d3b7ef8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383309.8578842} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9c337d4ca9f52fded40443d80e8b81ee"},"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":"14/Jun/2024:16:41:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 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":"9c337d4ca9f52fded40443d80e8b81ee"} device-1 | {"level":"info","message":"GET /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 200 17ms","method":"GET","requestID":"9c337d4ca9f52fded40443d80e8b81ee","responseTime":17,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7468e116951af96f3145a077fe63528b","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:57580","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.307528,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"7468e116951af96f3145a077fe63528b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"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:57580","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794557,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"ff423ba0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.273796,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"ff4289c0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.700197460Z"}]},"request_id":"0cfa94c7-37e1-4a19-b7f1-ff4c23cbdf7d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383309.9260798} 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":"ff423ba0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"6ee17ca6-e127-49d0-8d1a-f3df8c85f97f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383309.9274464} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff4289c0-2a6c-11ef-91df-9f2f583abbec"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 200 20ms","method":"GET","requestID":"ff423ba0-2a6c-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 200 19ms","method":"GET","requestID":"ff4289c0-2a6c-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"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:57580","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.334139,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:49Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"ff4dad50-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.361751,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"ff4dfb70-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.700197460Z"}]},"request_id":"786fe2db-8df5-4e44-9ddb-328d8edb5be7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0080907} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"1c191db3-ae63-46e6-bfb9-3a8742cc69c9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.009205} 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":"ff4dad50-2a6c-11ef-91df-9f2f583abbec"},"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:42248","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff4dfb70-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ebc5efb8-0a06-4651-8d19-0e1676383275","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0126188} authorization-1 | {"client_addr":"127.0.0.1:42248","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.333687,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff4e70a0-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 200 32ms","method":"GET","requestID":"ff4dad50-2a6c-11ef-91df-9f2f583abbec","responseTime":32,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6af3751d-a3db-4cae-b6c9-c2dcb69502ee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0214336} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 200 31ms","method":"GET","requestID":"ff4dfb70-2a6c-11ef-91df-9f2f583abbec","responseTime":31,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d533ab9-9028-4665-b5f3-523c82be66d3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0219543} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling 200 30ms","method":"POST","requestID":"ff4e70a0-2a6c-11ef-91df-9f2f583abbec","responseTime":30,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/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":"7468e116951af96f3145a077fe63528b"},"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 called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"180f9bea-5484-4e2e-9bf5-5be0dd798836","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.031184} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.56759,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","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":"14/Jun/2024:16:41:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7468e116951af96f3145a077fe63528b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 164ms","method":"POST","requestID":"7468e116951af96f3145a077fe63528b","responseTime":164,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff532b90-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6038a3d4-57ae-4672-9982-5cc01c2d5015","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0341642} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.605404,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","rebac_allow":false,"scope_allow":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":"ff5379b0-2a6c-11ef-91df-9f2f583abbec"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling 200 13ms","method":"POST","requestID":"ff532b90-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMH0.vySZbu01cO8-foTo_ijO69BMLNe01j80wsZ12dFMrpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5428eb2de410d55321398aae35f3b344","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling 200 13ms","method":"POST","requestID":"ff5379b0-2a6c-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.668399,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383310,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMH0.vySZbu01cO8-foTo_ijO69BMLNe01j80wsZ12dFMrpM"} 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":"5428eb2de410d55321398aae35f3b344"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ba118c23-04c0-47fd-a755-152d988972a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0455897} authorization-1 | {"client_addr":"127.0.0.1:41706","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.212841,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff55c3a0-2a6c-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.700197460Z"}]},"request_id":"79a49247-46eb-4344-bcd0-951a9a0aa255","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.048838} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling 200 7ms","method":"POST","requestID":"ff55c3a0-2a6c-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/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":"5428eb2de410d55321398aae35f3b344"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"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":"64948a23-880f-4f5b-9cd0-4fe708d839eb"},{"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":"0394195a-44f8-44ef-b7f9-2631ab230801"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"757d3925-ee08-46f2-a03d-a42dc5034f17"}]},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad"},{"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"}],"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":"14/Jun/2024:16:41:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 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":"5428eb2de410d55321398aae35f3b344"} device-1 | {"level":"info","message":"GET /devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad? 200 12ms","method":"GET","requestID":"5428eb2de410d55321398aae35f3b344","responseTime":12,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.780665,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383309,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMwOX0.sxTscFi-MHBw7ykb8YKn_tsxn2zArEI_se82zufKBU8"} 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":"ff574a40-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMH0.vySZbu01cO8-foTo_ijO69BMLNe01j80wsZ12dFMrpM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"660dd62e9a12e534937dadc66c5d0a50","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.446675,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383310,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMH0.vySZbu01cO8-foTo_ijO69BMLNe01j80wsZ12dFMrpM"} 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":"660dd62e9a12e534937dadc66c5d0a50"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"981ef34d-81d9-4955-b614-829654b9d132","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0662882} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"edb59448-a6d5-4722-9af2-7aadd5d0b328","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0665588} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:47.743309432Z"}]},"request_id":"90a98b1b-ea79-4dfc-91ae-f2e0df08a2c5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.0675738} 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":"ff574a40-2a6c-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"660dd62e9a12e534937dadc66c5d0a50"},"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 200 13ms","method":"GET","requestID":"660dd62e9a12e534937dadc66c5d0a50","responseTime":13,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c? 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":"660dd62e9a12e534937dadc66c5d0a50"} 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/761dc8eb-1c57-42f7-a831-ee6285082d2d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"ff574a40-2a6c-11ef-91df-9f2f583abbec","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c13cfa83-2cf0-499c-9bcd-658c97a8df4b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.1107233} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.670083,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"ff5f87a0-2a6c-11ef-91df-9f2f583abbec"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling 200 8ms","method":"POST","requestID":"ff5f87a0-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3573bb05-dc84-4093-96ee-e6c31e0ee0b1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383310.1212416} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.361698,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","rebac_allow":false,"scope_allow":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":"ff613550-2a6c-11ef-91df-9f2f583abbec"},"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling 200 8ms","method":"POST","requestID":"ff613550-2a6c-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","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/761dc8eb-1c57-42f7-a831-ee6285082d2d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","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":"c5d66316dc97e8f8d519ad62b4fdcd66","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad'"} 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/2f1f6d36-0d8c-44df-9a66-340644aa4cad"},{"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"c5d66316dc97e8f8d519ad62b4fdcd66","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"c5d66316dc97e8f8d519ad62b4fdcd66"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","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/761dc8eb-1c57-42f7-a831-ee6285082d2d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","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":"9b03a58ee31aff2e406bec855e29d7de","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/2f1f6d36-0d8c-44df-9a66-340644aa4cad"},{"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F761dc8eb-1c57-42f7-a831-ee6285082d2d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a93b2831-e8ff-4d71-ace5-dff8b39326f3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.2067628} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.834788,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d","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":"009f3390-2a6d-11ef-91df-9f2f583abbec"},"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/761dc8eb-1c57-42f7-a831-ee6285082d2d 200 10ms","method":"GET","requestID":"009f3390-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"9b03a58ee31aff2e406bec855e29d7de","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"9b03a58ee31aff2e406bec855e29d7de"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83e96fbc-1d30-4c0b-bf82-0056df3ef67d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.2330697} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.233637,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","rebac_allow":false,"scope_allow":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":"00a32b30-2a6d-11ef-91df-9f2f583abbec"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling 200 11ms","method":"POST","requestID":"00a32b30-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92068872-2bef-4f89-99da-54f32829af28","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.245383} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.977201,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","rebac_allow":false,"scope_allow":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":"00a4fff0-2a6d-11ef-91df-9f2f583abbec"},"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling 200 11ms","method":"POST","requestID":"00a4fff0-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ca9857dd148d897e48c5f59a6344bf2b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.793163,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383312,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ"} 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":"ca9857dd148d897e48c5f59a6344bf2b"},"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/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca9857dd148d897e48c5f59a6344bf2b"} experiment-1 | {"level":"info","message":"GET /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2 200 18ms","method":"GET","requestID":"ca9857dd148d897e48c5f59a6344bf2b","responseTime":18,"status":200,"url":"/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"73ed194d18aa3df5bf4cf4ed35a2d601","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.062518,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383312,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ"} 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":"73ed194d18aa3df5bf4cf4ed35a2d601"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.034117,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383312,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ"} 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":"00b3a5f0-2a6d-11ef-91df-9f2f583abbec"},"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/761dc8eb-1c57-42f7-a831-ee6285082d2d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F761dc8eb-1c57-42f7-a831-ee6285082d2d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F761dc8eb-1c57-42f7-a831-ee6285082d2d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"b0c7112e-87a2-4a9d-810a-4351414fca30","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.349757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"165aacef-e459-48b5-8a68-d4924cf34b28","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.3499556} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e756f24b735586c515ef7a169d897598","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00b3a5f0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad"},{"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cff8fe8ed1060ebeecc57855b6e73d7c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad"},{"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"761dc8eb-1c57-42f7-a831-ee6285082d2d","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/761dc8eb-1c57-42f7-a831-ee6285082d2d 204 33ms","method":"DELETE","requestID":"00b3a5f0-2a6d-11ef-91df-9f2f583abbec","responseTime":33,"status":204,"url":"/peerconnections/761dc8eb-1c57-42f7-a831-ee6285082d2d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f1f6d36-0d8c-44df-9a66-340644aa4cad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4df0b735-caf0-48df-aaca-a25b0f97307a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.3924475} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.537665,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"00bbbc40-2a6d-11ef-91df-9f2f583abbec"},"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/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling 200 9ms","method":"POST","requestID":"00bbbc40-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"d37da13f-5ceb-40f4-89bd-5ec8ff6cfe1c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.4011147} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0b6fa78-e858-4bee-a02f-5b10c815dcf3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.4013948} 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":"73ed194d18aa3df5bf4cf4ed35a2d601"},"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:57580","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F46cbb03e-30b8-46cc-bf17-50da0b9ba67c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3244a76a-ba20-45b4-bac0-bb831e248ae3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.406199} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.315976,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c","object_type":"device","rebac_allow":false,"scope_allow":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":"00bd9100-2a6d-11ef-91df-9f2f583abbec"},"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/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling 200 11ms","method":"POST","requestID":"00bd9100-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.152","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"73ed194d18aa3df5bf4cf4ed35a2d601"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2799","request_time":"4.183","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"036cdfed58c8239d783ddf927a5b7ff9"} experiment-1 | {"level":"info","message":"DELETE /experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2 204 149ms","method":"DELETE","requestID":"73ed194d18aa3df5bf4cf4ed35a2d601","responseTime":149,"status":204,"url":"/experiments/6299f0fe-7ed7-472c-b045-8f9f9e8e4ae2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 123ms","method":"POST","requestID":"e756f24b735586c515ef7a169d897598","responseTime":123,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch","requestID":"e756f24b735586c515ef7a169d897598"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 122ms","method":"POST","requestID":"cff8fe8ed1060ebeecc57855b6e73d7c","responseTime":122,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"cff8fe8ed1060ebeecc57855b6e73d7c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7757d19d852a730b3906e6b9227cb353","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.257547,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383312,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ"} 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":"7757d19d852a730b3906e6b9227cb353"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.686","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"15b8b67c8eb0dca011b616d36f71e6e1"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/46cbb03e-30b8-46cc-bf17-50da0b9ba67c' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6c9689e2-e258-4e54-a315-faadcf2befe1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.4996238} 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":"7757d19d852a730b3906e6b9227cb353"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"718d20d2-40a7-4b5b-8b67-afe8a31960a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5045795} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2f1f6d36-0d8c-44df-9a66-340644aa4cad' 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":"7757d19d852a730b3906e6b9227cb353"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"397f83df-cb0a-4d77-8185-0592ce6237b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5199907} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c359024-ef08-4631-bbb1-b0972abb43c5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.520285} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7757d19d852a730b3906e6b9227cb353"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"efc3bde6-4cf1-4bd9-bd66-cc9b35fb3c0f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.524789} 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":"7757d19d852a730b3906e6b9227cb353"},"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":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7757d19d852a730b3906e6b9227cb353"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"7757d19d852a730b3906e6b9227cb353","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b479253ce95563de3aca95cf6a4d0ca3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.007266,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383312,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxMn0.3rhWkAXE5NQI41Vife4rzoSa0wNkWkQ4G34w8i9ttUQ"} 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":"b479253ce95563de3aca95cf6a4d0ca3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dd2a8c15-8d21-43eb-ba8a-6598f1b34ae2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5489845} 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":"b479253ce95563de3aca95cf6a4d0ca3"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e6cf11c1-e533-46c9-99c4-16178c79c5b2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5540903} 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":"b479253ce95563de3aca95cf6a4d0ca3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"c3488885-b433-434a-b7ba-940e82360e31","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.565455} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdafcacd-6109-4b99-9dc3-1bcf3991b568","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5659673} 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":"b479253ce95563de3aca95cf6a4d0ca3"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.565416516Z"}]},"request_id":"240330d5-9fa7-4c29-93c6-58a65e455901","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383312.5700648} 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":"b479253ce95563de3aca95cf6a4d0ca3"},"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":"b479253ce95563de3aca95cf6a4d0ca3","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b479253ce95563de3aca95cf6a4d0ca3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxM30.cfYB-J9Xd_qjEAHAXof0KaZRiFvDJBf-jIegwhecCIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6027b651ef99df81ec3ee4366f8fb3c4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:53Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.07126,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383313,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxM30.cfYB-J9Xd_qjEAHAXof0KaZRiFvDJBf-jIegwhecCIc"} 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":"6027b651ef99df81ec3ee4366f8fb3c4"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"b4657974-01bc-4587-a780-9fe9d01c9e9c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383313.0760293} 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":"6027b651ef99df81ec3ee4366f8fb3c4"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5cab6362-53ae-43b0-86d0-da6477546c3d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383313.0818527} 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":"6027b651ef99df81ec3ee4366f8fb3c4"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"1315b4f0-c701-4b2c-9b36-2a21108eceac","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383313.093857} 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":"6027b651ef99df81ec3ee4366f8fb3c4"},"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":"14/Jun/2024:16:41:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/08dded79-4e37-4fe6-a4b6-18318773e296 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6027b651ef99df81ec3ee4366f8fb3c4"} device-1 | {"level":"info","message":"PATCH /devices/08dded79-4e37-4fe6-a4b6-18318773e296 200 32ms","method":"PATCH","requestID":"6027b651ef99df81ec3ee4366f8fb3c4","responseTime":32,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxM30.cfYB-J9Xd_qjEAHAXof0KaZRiFvDJBf-jIegwhecCIc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bcd36bc8d920ac6dbf4694ec030aa9c8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:53Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943216,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383313,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxM30.cfYB-J9Xd_qjEAHAXof0KaZRiFvDJBf-jIegwhecCIc"} 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":"bcd36bc8d920ac6dbf4694ec030aa9c8"},"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":"14/Jun/2024:16:41:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/08dded79-4e37-4fe6-a4b6-18318773e296/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":"bcd36bc8d920ac6dbf4694ec030aa9c8"} device-1 | {"level":"info","message":"POST /devices/08dded79-4e37-4fe6-a4b6-18318773e296/websocket 200 14ms","method":"POST","requestID":"bcd36bc8d920ac6dbf4694ec030aa9c8","responseTime":14,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296' 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":"44f12c7fc61c98f2517e9bb395504fc1","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/websocket 200 1ms","method":"OPTIONS","requestID":"44f12c7fc61c98f2517e9bb395504fc1","responseTime":1,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/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":"44f12c7fc61c98f2517e9bb395504fc1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"acc9b5c00915cd65bd24de289f733268","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.18104,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"acc9b5c00915cd65bd24de289f733268"},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/websocket 200 20ms","method":"POST","requestID":"acc9b5c00915cd65bd24de289f733268","responseTime":20,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"acc9b5c00915cd65bd24de289f733268"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cdbaae6bdef39a2f47f998d7a8dd7ae8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.370668,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"cdbaae6bdef39a2f47f998d7a8dd7ae8"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"0fbdc4f9-bf71-4847-aceb-ca09dd0d6449","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.6145546} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cdbaae6bdef39a2f47f998d7a8dd7ae8"},"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/08dded79-4e37-4fe6-a4b6-18318773e296? 200 17ms","method":"GET","requestID":"cdbaae6bdef39a2f47f998d7a8dd7ae8","responseTime":17,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296?"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/08dded79-4e37-4fe6-a4b6-18318773e296? 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":"cdbaae6bdef39a2f47f998d7a8dd7ae8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2c16b255878e28bca4b861d0bb39795f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.669494,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"2c16b255878e28bca4b861d0bb39795f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.565416516Z"}]},"request_id":"31998529-ca71-476c-af88-95a209eb1572","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.6396732} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2c16b255878e28bca4b861d0bb39795f"},"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":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 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":"2c16b255878e28bca4b861d0bb39795f"} device-1 | {"level":"info","message":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 200 17ms","method":"GET","requestID":"2c16b255878e28bca4b861d0bb39795f","responseTime":17,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d30de4e95127054592e9f0da269876b9","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:57580","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.178479,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"d30de4e95127054592e9f0da269876b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"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:57580","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238908,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"021afe20-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.942953,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"021b4c40-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"df70b758-1c81-4a8c-acc0-f90d53a1c9e0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.6999674} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"021afe20-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.565416516Z"}]},"request_id":"b2fc4693-ee93-4571-b2f7-72c1304739b1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.7037525} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"021b4c40-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"GET /devices/08dded79-4e37-4fe6-a4b6-18318773e296? 200 15ms","method":"GET","requestID":"021afe20-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 200 16ms","method":"GET","requestID":"021b4c40-2a6d-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"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/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.179212,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"0225ac80-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.274945,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"0225faa0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eba1e5f2-4204-4a55-92e6-a958c75f55b6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.7712457} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.046431,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","rebac_allow":false,"scope_allow":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":"022648c0-2a6d-11ef-91df-9f2f583abbec"},"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/08dded79-4e37-4fe6-a4b6-18318773e296/signaling 200 12ms","method":"POST","requestID":"022648c0-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"1e446ff3-564b-48e6-b5e3-734d9078bce6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.7756853} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0225ac80-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.565416516Z"}]},"request_id":"4be05172-9ff7-4f06-990c-723da14ee163","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.777065} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0225faa0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/08dded79-4e37-4fe6-a4b6-18318773e296? 200 26ms","method":"GET","requestID":"0225ac80-2a6d-11ef-91df-9f2f583abbec","responseTime":26,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 200 25ms","method":"GET","requestID":"0225faa0-2a6d-11ef-91df-9f2f583abbec","responseTime":25,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9097e1a5-2f86-4e44-b547-82737b16e2fa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.78548} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f57b85c-94b7-4267-bb6a-b474b0c4d40d#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f57b85c-94b7-4267-bb6a-b474b0c4d40d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a9473b24-0ef2-4a72-99f5-a963affa8fcf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.7882366} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.714545,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","rebac_allow":false,"scope_allow":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":"022892b0-2a6d-11ef-91df-9f2f583abbec"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"040ab56c-e4d0-402f-816e-740817173bb3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.788987} 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":"d30de4e95127054592e9f0da269876b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} device-1 | {"level":"info","message":"POST /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling 200 16ms","method":"POST","requestID":"022892b0-2a6d-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46e998fe-d89f-4df0-955a-ae237a6a3308","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.7981982} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.920265,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","rebac_allow":false,"scope_allow":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":"022a6770-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d30de4e95127054592e9f0da269876b9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"d30de4e95127054592e9f0da269876b9","responseTime":149,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/08dded79-4e37-4fe6-a4b6-18318773e296/signaling 200 14ms","method":"POST","requestID":"022a6770-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"59b01fe16714cb564660ee3e0be60bfd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45754","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.262909,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"59b01fe16714cb564660ee3e0be60bfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9191608a-1c01-4a11-a64c-91ce8e5ccc7d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.8145704} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.884956,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","rebac_allow":false,"scope_allow":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":"022cd870-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.519949686Z"}]},"request_id":"94760f2c-2f4d-41bc-98a3-71cbd424d0bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.8198702} device-1 | {"level":"info","message":"POST /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling 200 13ms","method":"POST","requestID":"022cd870-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"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":"40ffd56d-a2cb-4ec1-ac40-65110154879e"},{"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":"0b9b6f66-0f6e-40e6-b7ff-2312e5dc54e3"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"de9d7ea2-4000-4844-ad23-b2886248b06a"}]},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a"},{"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/08dded79-4e37-4fe6-a4b6-18318773e296"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} 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":"59b01fe16714cb564660ee3e0be60bfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.350016,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/08dded79-4e37-4fe6-a4b6-18318773e296? 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":"59b01fe16714cb564660ee3e0be60bfd"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} device-1 | {"level":"info","message":"GET /devices/08dded79-4e37-4fe6-a4b6-18318773e296? 200 18ms","method":"GET","requestID":"59b01fe16714cb564660ee3e0be60bfd","responseTime":18,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296?"} 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":"022f4970-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8ddbcd842ff2ed57c908628ec2c73fbe","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631738,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383314,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxNH0.96bXSfeyIfdVK-KS5XvUFxtPiHAlUuCBKTLAAFcFK4U"} 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":"8ddbcd842ff2ed57c908628ec2c73fbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6c4b4930-561f-46ec-a63e-3fae4c9faf23","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.8400419} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e760fa34-a074-4d33-8550-c2f37289c0ce","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.8402896} 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":"022f4970-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:52.565416516Z"}]},"request_id":"7b0659f8-bb7c-4e78-9f05-9c7cf044efb0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.843739} 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":"8ddbcd842ff2ed57c908628ec2c73fbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"022f4970-2a6d-11ef-91df-9f2f583abbec","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:41:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 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":"8ddbcd842ff2ed57c908628ec2c73fbe"} device-1 | {"level":"info","message":"GET /devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a? 200 18ms","method":"GET","requestID":"8ddbcd842ff2ed57c908628ec2c73fbe","responseTime":18,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"530e76ce-c077-4ec7-93a2-37a9c63ff0ee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.882432} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.508157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","rebac_allow":false,"scope_allow":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":"0237ade0-2a6d-11ef-91df-9f2f583abbec"},"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/08dded79-4e37-4fe6-a4b6-18318773e296/signaling 200 9ms","method":"POST","requestID":"0237ade0-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf69b0d0-c728-4280-8eda-56ce6ec6b6bf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383314.893597} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.683483,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"02395b90-2a6d-11ef-91df-9f2f583abbec"},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling 200 9ms","method":"POST","requestID":"02395b90-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","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/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b7d530402c838211de3e2ffcc9a8daaa","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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a"},{"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/08dded79-4e37-4fe6-a4b6-18318773e296"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"b7d530402c838211de3e2ffcc9a8daaa","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"b7d530402c838211de3e2ffcc9a8daaa"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","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/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","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":"38d95a130e7372e4033354418dada746","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a"},{"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/08dded79-4e37-4fe6-a4b6-18318773e296"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcecb92b1-8e26-40c7-b8ae-5b39b8e24e65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97536ed3-31df-4ef3-a0c9-1d39f5c51d6a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.044253} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.550486,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","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":"038144e0-2a6d-11ef-91df-9f2f583abbec"},"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/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65 200 11ms","method":"GET","requestID":"038144e0-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"38d95a130e7372e4033354418dada746","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"38d95a130e7372e4033354418dada746"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"095312a1-c815-47ac-bd33-0760a339ad2a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.084674} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.588925,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","rebac_allow":false,"scope_allow":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":"03875f60-2a6d-11ef-91df-9f2f583abbec"},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling 200 14ms","method":"POST","requestID":"03875f60-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b98bf549-e5d2-40b1-9b0f-96b77f094bbd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.1034749} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.348639,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","rebac_allow":false,"scope_allow":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":"038a1e80-2a6d-11ef-91df-9f2f583abbec"},"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/08dded79-4e37-4fe6-a4b6-18318773e296/signaling 200 14ms","method":"POST","requestID":"038a1e80-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e1d145ec8e845213b374156fe6d659cd","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.335008,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"e1d145ec8e845213b374156fe6d659cd"},"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/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} experiment-1 | {"level":"info","message":"GET /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d 200 16ms","method":"GET","requestID":"e1d145ec8e845213b374156fe6d659cd","responseTime":16,"status":200,"url":"/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} gateway-1 | {"time_local":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d 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":"e1d145ec8e845213b374156fe6d659cd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"276511e9bf8db5763711972ecd895c24","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.341352,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"276511e9bf8db5763711972ecd895c24"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.256445,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"03965380-2a6d-11ef-91df-9f2f583abbec"},"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/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcecb92b1-8e26-40c7-b8ae-5b39b8e24e65': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fcecb92b1-8e26-40c7-b8ae-5b39b8e24e65","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"b20fe03b-9d2f-4aa1-89bf-a7f5cb0bd048","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.2001305} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"517e672d-aa6b-4781-85a1-8aed5d50dc00","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.200838} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d75aa2f5b77abe765d10582ae6530c49","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03965380-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a"},{"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/08dded79-4e37-4fe6-a4b6-18318773e296"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5c1c970678e2e34f8f87fcc971c7931c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a"},{"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/08dded79-4e37-4fe6-a4b6-18318773e296"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"cecb92b1-8e26-40c7-b8ae-5b39b8e24e65","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/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65 204 47ms","method":"DELETE","requestID":"03965380-2a6d-11ef-91df-9f2f583abbec","responseTime":47,"status":204,"url":"/peerconnections/cecb92b1-8e26-40c7-b8ae-5b39b8e24e65"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9c64caa6-9599-4cc5-9aee-52f1cf0a294a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c3901fb-7d3f-41f6-a274-52ea87889dc6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.2517316} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.583587,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a","object_type":"device","rebac_allow":false,"scope_allow":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":"03a0dad0-2a6d-11ef-91df-9f2f583abbec"},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling 200 13ms","method":"POST","requestID":"03a0dad0-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/9c64caa6-9599-4cc5-9aee-52f1cf0a294a/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f57b85c-94b7-4267-bb6a-b474b0c4d40d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f57b85c-94b7-4267-bb6a-b474b0c4d40d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"1112549e-9326-498f-b0f3-911dad20e260","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.2587192} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"44ed41d7-9761-41cb-aaa1-65013de64ada","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.2592103} 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":"276511e9bf8db5763711972ecd895c24"},"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:57580","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F08dded79-4e37-4fe6-a4b6-18318773e296","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c491c95-40f3-41e4-b427-954bfd5fc581","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.268241} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.297309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296","object_type":"device","rebac_allow":false,"scope_allow":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":"03a34bd0-2a6d-11ef-91df-9f2f583abbec"},"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/08dded79-4e37-4fe6-a4b6-18318773e296/signaling 200 14ms","method":"POST","requestID":"03a34bd0-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/08dded79-4e37-4fe6-a4b6-18318773e296/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} gateway-1 | {"time_local":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d 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":"276511e9bf8db5763711972ecd895c24"} gateway-1 | {"time_local":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2801","request_time":"4.211","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c8f485da6fbdccfe57e48df436db153a"} experiment-1 | {"level":"info","message":"DELETE /experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d 204 171ms","method":"DELETE","requestID":"276511e9bf8db5763711972ecd895c24","responseTime":171,"status":204,"url":"/experiments/1f57b85c-94b7-4267-bb6a-b474b0c4d40d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"d75aa2f5b77abe765d10582ae6530c49","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"d75aa2f5b77abe765d10582ae6530c49"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 128ms","method":"POST","requestID":"5c1c970678e2e34f8f87fcc971c7931c","responseTime":128,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.136","http_referrer":"","http_user_agent":"node-fetch","requestID":"5c1c970678e2e34f8f87fcc971c7931c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9dc683da20add790534401c8ffd7b497","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.760","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46ef6333bef8f511e5ac216e06b00bf4"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.774942,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"9dc683da20add790534401c8ffd7b497"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/08dded79-4e37-4fe6-a4b6-18318773e296' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2bcef198-05b7-4e74-8fd0-c57198db2b57","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.360234} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9dc683da20add790534401c8ffd7b497"},"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/9c64caa6-9599-4cc5-9aee-52f1cf0a294a' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6fc68eda-0ca2-44f5-8892-281f2ef12874","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.3664222} 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":"9dc683da20add790534401c8ffd7b497"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"c9a4770b-3485-4e3e-85a7-ac246d5c917d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.3802738} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"440dcfc8-f063-43ca-b6cb-a9b1cd1244cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.380471} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9dc683da20add790534401c8ffd7b497"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"e216163a-479b-46c0-b15f-469fb73bf277","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.3847554} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9dc683da20add790534401c8ffd7b497"},"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":"14/Jun/2024:16:41: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":"9dc683da20add790534401c8ffd7b497"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"9dc683da20add790534401c8ffd7b497","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cbfa15ed3ccfed1c67295b437e2cccdc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.759402,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"cbfa15ed3ccfed1c67295b437e2cccdc"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9d63d616-1f99-4c21-a808-832144cb7877","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.4080322} 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":"cbfa15ed3ccfed1c67295b437e2cccdc"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24252b3d-9c1c-4efb-b617-040d091848e4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.412613} 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":"cbfa15ed3ccfed1c67295b437e2cccdc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"9cc3c20a-9c63-47cf-8276-104e7d22a839","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.4235632} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd5d051e-3c92-4868-aa55-de5d35a7ca8f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.4237912} 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":"cbfa15ed3ccfed1c67295b437e2cccdc"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.423525848Z"}]},"request_id":"a9d9e623-c3be-443d-a49e-c1f1928d3e66","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.4279313} 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":"cbfa15ed3ccfed1c67295b437e2cccdc"},"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":"14/Jun/2024:16:41: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.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cbfa15ed3ccfed1c67295b437e2cccdc"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"cbfa15ed3ccfed1c67295b437e2cccdc","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"bdd11dff02b8867cf991e425f4aeb910","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.997832,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"bdd11dff02b8867cf991e425f4aeb910"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"a7efd95c-89d8-4604-afdf-22fd4d1c409c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.9236472} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bdd11dff02b8867cf991e425f4aeb910"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"558f3e7e-af7b-4f31-8e0a-b5c5f1fbea36","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.930832} 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":"bdd11dff02b8867cf991e425f4aeb910"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"c320f164-d550-4f5a-b966-03d349b39745","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383317.9429598} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bdd11dff02b8867cf991e425f4aeb910"},"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":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"bdd11dff02b8867cf991e425f4aeb910"} device-1 | {"level":"info","message":"PATCH /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d 200 37ms","method":"PATCH","requestID":"bdd11dff02b8867cf991e425f4aeb910","responseTime":37,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6bc3d22c30728554b58436e2d5598491","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.195941,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383317,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxN30.r5POy_IMMai3SwYT3WHB9lYyhas40Vx-thGh6ag3hF0"} 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":"6bc3d22c30728554b58436e2d5598491"},"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":"14/Jun/2024:16:41:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/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":"6bc3d22c30728554b58436e2d5598491"} device-1 | {"level":"info","message":"POST /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/websocket 200 20ms","method":"POST","requestID":"6bc3d22c30728554b58436e2d5598491","responseTime":20,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d' 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":"03324fab3882a61844cbf9c2049e5a94","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/531d3691-7e65-474c-8e19-8e2988f41eed/websocket 200 1ms","method":"OPTIONS","requestID":"03324fab3882a61844cbf9c2049e5a94","responseTime":1,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/531d3691-7e65-474c-8e19-8e2988f41eed/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":"03324fab3882a61844cbf9c2049e5a94"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5d8330a061417193c0f7010c3051bd52","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.17463,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"5d8330a061417193c0f7010c3051bd52"},"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":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/531d3691-7e65-474c-8e19-8e2988f41eed/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5d8330a061417193c0f7010c3051bd52"} device-1 | {"level":"info","message":"POST /devices/531d3691-7e65-474c-8e19-8e2988f41eed/websocket 200 20ms","method":"POST","requestID":"5d8330a061417193c0f7010c3051bd52","responseTime":20,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"ce14f80f4686ed00676ea8fb6180d0a6","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.112435,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"ce14f80f4686ed00676ea8fb6180d0a6"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"cf8377e7-cde8-4649-aef2-34ecbd53ef68","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.509777} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ce14f80f4686ed00676ea8fb6180d0a6"},"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":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce14f80f4686ed00676ea8fb6180d0a6"} device-1 | {"level":"info","message":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? 200 22ms","method":"GET","requestID":"ce14f80f4686ed00676ea8fb6180d0a6","responseTime":22,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"527fd68fc683c97eff315c77dfb05b9f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.177716,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"527fd68fc683c97eff315c77dfb05b9f"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.423525848Z"}]},"request_id":"9919321d-7cfb-437e-a719-22a0040b1f73","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.538823} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"527fd68fc683c97eff315c77dfb05b9f"},"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":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/531d3691-7e65-474c-8e19-8e2988f41eed? 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":"527fd68fc683c97eff315c77dfb05b9f"} device-1 | {"level":"info","message":"GET /devices/531d3691-7e65-474c-8e19-8e2988f41eed? 200 17ms","method":"GET","requestID":"527fd68fc683c97eff315c77dfb05b9f","responseTime":17,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6e89d716f648a240ccbc025e3b5807ff","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:57580","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.171544,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"6e89d716f648a240ccbc025e3b5807ff"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"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:57580","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.069523,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"050748a0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.98037,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"050796c0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"98b9d6a3-818e-404e-8a08-370e5f0a3ee8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.6040363} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"050748a0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.423525848Z"}]},"request_id":"7468a47c-fec9-4ebf-bf9a-4b7b7a147827","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.6080952} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? 200 15ms","method":"GET","requestID":"050748a0-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"050796c0-2a6d-11ef-91df-9f2f583abbec"},"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/531d3691-7e65-474c-8e19-8e2988f41eed? 200 17ms","method":"GET","requestID":"050796c0-2a6d-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"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:57580","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.043747,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"05121e10-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.59029,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"05129340-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4048a017-46d1-4222-9eb0-75816050873c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.683116} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.170389,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","rebac_allow":false,"scope_allow":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":"05130870-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"85108ef5-a100-407b-92c1-691217b3bc44","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.685447} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.423525848Z"}]},"request_id":"2cc55349-0808-4e02-9735-f77a96d3c8a8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.687204} 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":"05121e10-2a6d-11ef-91df-9f2f583abbec"},"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 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":"05129340-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc883fece-c93c-481d-95f3-d0deaa5702c6#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc883fece-c93c-481d-95f3-d0deaa5702c6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"559587f8-4ab3-4dcd-abea-71c4aad4bf8f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.6969974} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"047f6e09-748e-4b01-91a8-66c329795990","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.697388} device-1 | {"level":"info","message":"POST /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling 200 27ms","method":"POST","requestID":"05130870-2a6d-11ef-91df-9f2f583abbec","responseTime":27,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling"} 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":"6e89d716f648a240ccbc025e3b5807ff"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? 200 35ms","method":"GET","requestID":"05121e10-2a6d-11ef-91df-9f2f583abbec","responseTime":35,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/531d3691-7e65-474c-8e19-8e2988f41eed? 200 37ms","method":"GET","requestID":"05129340-2a6d-11ef-91df-9f2f583abbec","responseTime":37,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbffebbf-188d-478d-8f78-9e6e5ff4575a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.709008} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.122051,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:41: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.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e89d716f648a240ccbc025e3b5807ff"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","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 161ms","method":"POST","requestID":"6e89d716f648a240ccbc025e3b5807ff","responseTime":161,"status":201,"url":"/experiments?"} 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":"0517c360-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8235d0c5-c970-4d62-90d0-f53efd25636a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.7165368} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.885025,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} device-1 | {"level":"info","message":"POST /devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling 200 16ms","method":"POST","requestID":"0517c360-2a6d-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","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":"0518adc0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2bdb670120616ac1dc073447c3031f11","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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling 200 15ms","method":"POST","requestID":"0518adc0-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.3821,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"2bdb670120616ac1dc073447c3031f11"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.380251813Z"}]},"request_id":"e8f1b77c-d8c8-4edd-bfa2-33adc1062452","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.7315638} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2bdb670120616ac1dc073447c3031f11"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0748f77f-66f3-477b-b9c3-a56a54d568f2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.7321298} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.817539,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","rebac_allow":false,"scope_allow":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":"051b6ce0-2a6d-11ef-91df-9f2f583abbec"},"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":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2bdb670120616ac1dc073447c3031f11"} device-1 | {"level":"info","message":"GET /devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d? 200 16ms","method":"GET","requestID":"2bdb670120616ac1dc073447c3031f11","responseTime":16,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling 200 12ms","method":"POST","requestID":"051b6ce0-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"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":"94caf95c-3495-4ab4-8cf4-c39962775c57"},{"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":"bb335d3f-0a81-4d42-a627-fff29139d092"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"402142c5-1530-4635-9591-fd598d0488c1"}]},"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/531d3691-7e65-474c-8e19-8e2988f41eed"},{"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c138832834da96e0c0b8af2e137bd948","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.91915,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"051ddde0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.12661,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383319,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMxOX0.fU1WG04_zipzvkjR4kpMDriUi02UxiDn--KRuAuQ8Fw"} 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":"c138832834da96e0c0b8af2e137bd948"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:41:57.423525848Z"}]},"request_id":"412da747-370b-41bc-9911-a66cd0faa84f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.7532785} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c138832834da96e0c0b8af2e137bd948"},"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":"14/Jun/2024:16:41:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/531d3691-7e65-474c-8e19-8e2988f41eed? 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":"c138832834da96e0c0b8af2e137bd948"} device-1 | {"level":"info","message":"GET /devices/531d3691-7e65-474c-8e19-8e2988f41eed? 200 13ms","method":"GET","requestID":"c138832834da96e0c0b8af2e137bd948","responseTime":13,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed?"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"dfb9d27e-9fcc-4955-a53a-9c330acc9600","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.758523} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1995f1f1-e1a4-4003-bbb1-98f0a2fec8bd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.7589042} 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":"051ddde0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} 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/fa5f6917-4441-41a2-87d2-feec93a2899b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b'"} 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":"051ddde0-2a6d-11ef-91df-9f2f583abbec","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"11cb20f3-e2d7-4b21-a29f-f7cbdaa15cae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.8148766} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.806163,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"05283e20-2a6d-11ef-91df-9f2f583abbec"},"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling 200 8ms","method":"POST","requestID":"05283e20-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"124a2ea5-12e1-4e2d-973c-9136946dcd7b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383319.8255863} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.543191,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:41:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0529ebd0-2a6d-11ef-91df-9f2f583abbec"},"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/531d3691-7e65-474c-8e19-8e2988f41eed/signaling 200 8ms","method":"POST","requestID":"0529ebd0-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","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/fa5f6917-4441-41a2-87d2-feec93a2899b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a98d460618cce856788b6fdc5075ff0","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed'"} 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":"new","url":"http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed"},{"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"6a98d460618cce856788b6fdc5075ff0","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a98d460618cce856788b6fdc5075ff0"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","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/fa5f6917-4441-41a2-87d2-feec93a2899b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","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":"f0501c89085e16e979bfe9f7ebd80350","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/531d3691-7e65-474c-8e19-8e2988f41eed"},{"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa5f6917-4441-41a2-87d2-feec93a2899b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad22a4e4-e5a8-4580-b98e-811bcc3b0a4b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383321.8944874} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.329809,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b","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":"0665a020-2a6d-11ef-91df-9f2f583abbec"},"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/fa5f6917-4441-41a2-87d2-feec93a2899b 200 8ms","method":"GET","requestID":"0665a020-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"f0501c89085e16e979bfe9f7ebd80350","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0501c89085e16e979bfe9f7ebd80350"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2df4490c-d9a4-4b41-bbee-7d5d58ec797d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383321.920068} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.453057,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","rebac_allow":false,"scope_allow":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":"066970b0-2a6d-11ef-91df-9f2f583abbec"},"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/531d3691-7e65-474c-8e19-8e2988f41eed/signaling 200 9ms","method":"POST","requestID":"066970b0-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be5167cc-4e38-4337-9886-a8544e99d7a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383321.930968} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.339378,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","rebac_allow":false,"scope_allow":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":"066b1e60-2a6d-11ef-91df-9f2f583abbec"},"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling 200 10ms","method":"POST","requestID":"066b1e60-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMX0.gWG9DO3xjspMYSK92BX23Rgkp3XeyW9YRVrr-TzmZhg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"881d6b133a0bff5fda7add6ab9fb776f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.19232,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383321,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMX0.gWG9DO3xjspMYSK92BX23Rgkp3XeyW9YRVrr-TzmZhg"} 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":"881d6b133a0bff5fda7add6ab9fb776f"},"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/c883fece-c93c-481d-95f3-d0deaa5702c6"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6 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":"881d6b133a0bff5fda7add6ab9fb776f"} experiment-1 | {"level":"info","message":"GET /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6 200 15ms","method":"GET","requestID":"881d6b133a0bff5fda7add6ab9fb776f","responseTime":15,"status":200,"url":"/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cbd48d640c09985f63598f1162b8dc26","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.804504,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"cbd48d640c09985f63598f1162b8dc26"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.138213,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"067a87b0-2a6d-11ef-91df-9f2f583abbec"},"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/fa5f6917-4441-41a2-87d2-feec93a2899b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa5f6917-4441-41a2-87d2-feec93a2899b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffa5f6917-4441-41a2-87d2-feec93a2899b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"a1128078-f99d-4402-a04a-aba64cbf91b4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.0523984} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f8cce9fb5e281e3eb5872df617a3ab36","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7256644-81f4-444e-9d8f-e7aee29d5167","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.0528815} 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/531d3691-7e65-474c-8e19-8e2988f41eed"},{"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"}}},"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 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":"067a87b0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5ccaa29b7d1c630874863186effbcccc","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed"},{"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"fa5f6917-4441-41a2-87d2-feec93a2899b","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/fa5f6917-4441-41a2-87d2-feec93a2899b 204 48ms","method":"DELETE","requestID":"067a87b0-2a6d-11ef-91df-9f2f583abbec","responseTime":48,"status":204,"url":"/peerconnections/fa5f6917-4441-41a2-87d2-feec93a2899b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F531d3691-7e65-474c-8e19-8e2988f41eed","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d5e8aae4-8b3c-4bb9-b2fd-f41fcfa1bcb8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.1055717} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.205924,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/531d3691-7e65-474c-8e19-8e2988f41eed","object_type":"device","rebac_allow":false,"scope_allow":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":"06855d20-2a6d-11ef-91df-9f2f583abbec"},"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/531d3691-7e65-474c-8e19-8e2988f41eed/signaling 200 14ms","method":"POST","requestID":"06855d20-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/531d3691-7e65-474c-8e19-8e2988f41eed/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc883fece-c93c-481d-95f3-d0deaa5702c6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc883fece-c93c-481d-95f3-d0deaa5702c6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"dd0e3d03-656f-4aa5-b0e5-f58f021e4dfa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.1152756} 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45c5cb5f-0756-48e2-b7ed-2ccb0d9d2887","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.116017} 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":"cbd48d640c09985f63598f1162b8dc26"},"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:57580","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b779da16-bd6c-4975-b04b-a492c825ed1e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.1236775} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.324434,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d","object_type":"device","rebac_allow":false,"scope_allow":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":"06881c40-2a6d-11ef-91df-9f2f583abbec"},"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling 200 14ms","method":"POST","requestID":"06881c40-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6 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":"cbd48d640c09985f63598f1162b8dc26"} experiment-1 | {"level":"info","message":"DELETE /experiments/c883fece-c93c-481d-95f3-d0deaa5702c6 204 186ms","method":"DELETE","requestID":"cbd48d640c09985f63598f1162b8dc26","responseTime":186,"status":204,"url":"/experiments/c883fece-c93c-481d-95f3-d0deaa5702c6"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2799","request_time":"4.220","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5e7f0a90ead43623c02f908841d2c78b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"f8cce9fb5e281e3eb5872df617a3ab36","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"f8cce9fb5e281e3eb5872df617a3ab36"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"5ccaa29b7d1c630874863186effbcccc","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"5ccaa29b7d1c630874863186effbcccc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1342c55cab9de51c0c41272f40ac540d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.732","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3d8815f8bb9bd421172e665746313a79"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.209076,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"1342c55cab9de51c0c41272f40ac540d"},"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/db0cd31c-ff34-4f4d-aa0d-e35cc0ea762d' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"699fdfe0-641f-4154-8529-dee2af402ce5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.222021} 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":"1342c55cab9de51c0c41272f40ac540d"},"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/531d3691-7e65-474c-8e19-8e2988f41eed' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d13c7df-d1ad-48d1-8a9c-3b883fcaa59e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2278507} 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":"1342c55cab9de51c0c41272f40ac540d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7fec3e27-f2fd-4ce9-8211-41c2bfba75a3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2442517} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2199235a-4445-4b86-ac3f-9f6831065fdf","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2444673} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1342c55cab9de51c0c41272f40ac540d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"58b6f849-7cc9-42c6-93cc-7c70e1c3af8b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2516797} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1342c55cab9de51c0c41272f40ac540d"},"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 52ms","method":"POST","requestID":"1342c55cab9de51c0c41272f40ac540d","responseTime":52,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +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":"1342c55cab9de51c0c41272f40ac540d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"47ce3b799024abe07101f3bdeb257240","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.138982,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"47ce3b799024abe07101f3bdeb257240"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9158fc00-e377-4178-ab77-b3aa78569a0a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2830038} 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":"47ce3b799024abe07101f3bdeb257240"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3270454c-1390-48c9-8121-dab5faf605dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2876766} 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":"47ce3b799024abe07101f3bdeb257240"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"7f734bc7-b73e-4a80-a1df-13c8d30dbfda","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2974272} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d33000c0-4802-4717-abb3-ea033dbbc6dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.2975717} 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":"47ce3b799024abe07101f3bdeb257240"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"9010eba2-c7b1-4650-99c4-53635d27d94f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.3014684} 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":"47ce3b799024abe07101f3bdeb257240"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"47ce3b799024abe07101f3bdeb257240"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"47ce3b799024abe07101f3bdeb257240","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4ecfe200c5fb980eb562e25225e0aa66","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a3d30c2e134c6296091ea101f3deb7c8","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:57580","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603015,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"4ecfe200c5fb980eb562e25225e0aa66"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"a3d30c2e134c6296091ea101f3deb7c8"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"ae606a40-2f3e-47a2-9614-44d6e84980b4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.7869606} 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":"4ecfe200c5fb980eb562e25225e0aa66"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"a6954d8a-cc47-4fdd-9c52-436ade057e00","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.7874608} 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":"a3d30c2e134c6296091ea101f3deb7c8"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"995121aa-9453-406e-ab2d-059e44026bf8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.7919629} 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":"4ecfe200c5fb980eb562e25225e0aa66"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9399542c-1b97-475d-b648-5dbbf8b14830","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.793776} 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":"a3d30c2e134c6296091ea101f3deb7c8"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"01042dd1-3a82-4f5b-9639-1286f18694a2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.8002634} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3d30c2e134c6296091ea101f3deb7c8"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/35e8815b-e44b-42ec-999c-0548c4f6250b 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":"a3d30c2e134c6296091ea101f3deb7c8"} device-1 | {"level":"info","message":"PATCH /devices/35e8815b-e44b-42ec-999c-0548c4f6250b 200 26ms","method":"PATCH","requestID":"a3d30c2e134c6296091ea101f3deb7c8","responseTime":26,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c552f30610d923ff761f5e0401009586","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"0ca53d38-8486-44af-ae18-5d8c7ea0b96f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.8101404} 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":"4ecfe200c5fb980eb562e25225e0aa66"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4ecfe200c5fb980eb562e25225e0aa66"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} device-1 | {"level":"info","message":"PATCH /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460 200 38ms","method":"PATCH","requestID":"4ecfe200c5fb980eb562e25225e0aa66","responseTime":38,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.867205,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"c552f30610d923ff761f5e0401009586"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0ad60d4624dbfa2309419cee8689b6df","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.866458,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"0ad60d4624dbfa2309419cee8689b6df"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/35e8815b-e44b-42ec-999c-0548c4f6250b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c552f30610d923ff761f5e0401009586"} device-1 | {"level":"info","message":"POST /devices/35e8815b-e44b-42ec-999c-0548c4f6250b/websocket 200 24ms","method":"POST","requestID":"c552f30610d923ff761f5e0401009586","responseTime":24,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/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":"0ad60d4624dbfa2309419cee8689b6df"} device-1 | {"level":"info","message":"POST /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/websocket 200 24ms","method":"POST","requestID":"0ad60d4624dbfa2309419cee8689b6df","responseTime":24,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"433206e1e411c2ce64fa4ec6203af7c0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.015035,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"433206e1e411c2ce64fa4ec6203af7c0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"59fd31fe-b564-4bb2-a877-601e7acf00e4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.8818123} 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":"433206e1e411c2ce64fa4ec6203af7c0"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460? 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":"433206e1e411c2ce64fa4ec6203af7c0"} device-1 | {"level":"info","message":"GET /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460? 200 12ms","method":"GET","requestID":"433206e1e411c2ce64fa4ec6203af7c0","responseTime":12,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e2f90b3f9079495f0327c9cddc2dfc0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.950822,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"1e2f90b3f9079495f0327c9cddc2dfc0"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"af3d4240-9c02-42ca-a444-023b3a984b82","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.8973563} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e2f90b3f9079495f0327c9cddc2dfc0"},"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":"14/Jun/2024:16:42:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 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":"1e2f90b3f9079495f0327c9cddc2dfc0"} device-1 | {"level":"info","message":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 200 11ms","method":"GET","requestID":"1e2f90b3f9079495f0327c9cddc2dfc0","responseTime":11,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"afe3c58529db8812f9d06ebe43edf893","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:57580","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.36845,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"afe3c58529db8812f9d06ebe43edf893"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"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:57580","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.621459,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"0706c220-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.869147,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"0706e930-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"8ada439c-c382-4715-83ce-068605d78a72","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.954014} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0706c220-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"2d154379-33ac-4394-9f5d-f6874e5fb27c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383322.9553397} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0706e930-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460? 200 13ms","method":"GET","requestID":"0706c220-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 200 13ms","method":"GET","requestID":"0706e930-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"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/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908621,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"070fc2d0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.155394,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"070fe9e0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.573927,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"68e5aeb3-0bb4-4250-8cf7-07903a704967","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.014952} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"4fa2a0ce-d742-4865-bdb9-fe2505587265","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0174057} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","rebac_allow":false,"scope_allow":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":"071010f0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"2c3358a0-e515-4c90-8a0b-78d2067f581e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0187945} 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":"070fc2d0-2a6d-11ef-91df-9f2f583abbec"},"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":"070fe9e0-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling 200 19ms","method":"POST","requestID":"071010f0-2a6d-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460? 200 23ms","method":"GET","requestID":"070fc2d0-2a6d-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 200 25ms","method":"GET","requestID":"070fe9e0-2a6d-11ef-91df-9f2f583abbec","responseTime":25,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ac4a3189-9acb-43cd-b4ca-a855c265ee77","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0343766} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F65e0f882-ec33-45a3-93ef-fe19be2bf088#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F65e0f882-ec33-45a3-93ef-fe19be2bf088","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"60560547-a7a4-4313-a87b-f81acaa371fa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.034376} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"94d50bc5-9076-4a1e-858d-abe7d3ae54ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0346909} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.851391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","rebac_allow":false,"scope_allow":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":"07136c50-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} 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":"afe3c58529db8812f9d06ebe43edf893"},"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:45762","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e6af5843-8ab5-4a55-b223-f2e96cfa55ff","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0387769} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.532727,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling 200 11ms","method":"POST","requestID":"07136c50-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"07142fa0-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling 200 8ms","method":"POST","requestID":"07142fa0-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"14/Jun/2024:16:42:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"afe3c58529db8812f9d06ebe43edf893"} experiment-1 | {"level":"info","message":"POST /experiments? 201 141ms","method":"POST","requestID":"afe3c58529db8812f9d06ebe43edf893","responseTime":141,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"051fcf2f-5c31-4d11-b97e-6b263967f76f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0497594} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyM30.wdD_jrT9vKmET-hTTCu-L9zowsbZvvMH_0m7kin6vRg","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.50205,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"25a59af948362890d15be73078708c7d","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","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 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":"0715dd50-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691013,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling 200 9ms","method":"POST","requestID":"0715dd50-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383323,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyM30.wdD_jrT9vKmET-hTTCu-L9zowsbZvvMH_0m7kin6vRg"} 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":"25a59af948362890d15be73078708c7d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"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":"f3460338-4835-4ab2-a106-98e07ec31400"},{"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":"db932e5a-44b4-46fa-906a-e6e73883595f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0489763e-8f10-4971-ac26-8bdce780a113"}]},"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/35e8815b-e44b-42ec-999c-0548c4f6250b"},{"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/9e13e62e-9a6a-4792-bdcc-6197510ca460"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.244214374Z"}]},"request_id":"05d6d097-5b84-4042-868e-c2a30e5f5c3c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.05843} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"25a59af948362890d15be73078708c7d"},"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:57580","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.735938,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383322,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyMn0.7HW5-zEKrViG6bmyCvi-U85Dy8GZkgPoN00m9eJXplE"} 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":"0717b210-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460? 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":"25a59af948362890d15be73078708c7d"} device-1 | {"level":"info","message":"GET /devices/9e13e62e-9a6a-4792-bdcc-6197510ca460? 200 13ms","method":"GET","requestID":"25a59af948362890d15be73078708c7d","responseTime":13,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyM30.wdD_jrT9vKmET-hTTCu-L9zowsbZvvMH_0m7kin6vRg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e120e9e898e46abbca11159c002662c2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"34ac1749-fd63-4c55-bf1a-1c844b0f808c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0705564} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2125128e-541c-4ac7-b6ba-b5e6a90c8e64","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0708013} 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":"0717b210-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.742444,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383323,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyM30.wdD_jrT9vKmET-hTTCu-L9zowsbZvvMH_0m7kin6vRg"} 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":"e120e9e898e46abbca11159c002662c2"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:02.297403711Z"}]},"request_id":"8cac5235-10a0-458a-bd61-ce5444b0520c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.0781357} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e120e9e898e46abbca11159c002662c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e'"} 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 30ms","method":"POST","requestID":"0717b210-2a6d-11ef-91df-9f2f583abbec","responseTime":30,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 200 19ms","method":"GET","requestID":"e120e9e898e46abbca11159c002662c2","responseTime":19,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b?"} gateway-1 | {"time_local":"14/Jun/2024:16:42:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/35e8815b-e44b-42ec-999c-0548c4f6250b? 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":"e120e9e898e46abbca11159c002662c2"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c116947-46d8-4b93-b5c7-62a5e123a9c5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.121155} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.836925,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","rebac_allow":false,"scope_allow":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":"07208bb0-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling 200 10ms","method":"POST","requestID":"07208bb0-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f60f943f-6fa9-4821-bfc0-187ba973e643","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383323.1322947} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.427831,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","rebac_allow":false,"scope_allow":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":"07228780-2a6d-11ef-91df-9f2f583abbec"},"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/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling 200 8ms","method":"POST","requestID":"07228780-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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/a195dd0d-81d6-4202-9a59-dce168fe7e9e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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":"73a60db2e9ce18afc94505b626494279","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/35e8815b-e44b-42ec-999c-0548c4f6250b"},{"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/9e13e62e-9a6a-4792-bdcc-6197510ca460"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"73a60db2e9ce18afc94505b626494279"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"73a60db2e9ce18afc94505b626494279","responseTime":10,"status":200,"url":"/callbacks/experiment"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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/a195dd0d-81d6-4202-9a59-dce168fe7e9e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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":"fb53d32c8a4139cb1784488023b1c7c6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b"},{"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/9e13e62e-9a6a-4792-bdcc-6197510ca460"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa195dd0d-81d6-4202-9a59-dce168fe7e9e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca14926d-ca95-454f-b3de-6f736fade6b1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.2148457} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.110689,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e","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":"08601090-2a6d-11ef-91df-9f2f583abbec"},"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/a195dd0d-81d6-4202-9a59-dce168fe7e9e 200 10ms","method":"GET","requestID":"08601090-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"fb53d32c8a4139cb1784488023b1c7c6","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"fb53d32c8a4139cb1784488023b1c7c6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49868a3d-12d4-40db-8936-7b87b741ce4d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.2472794} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.61258,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","rebac_allow":false,"scope_allow":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":"0864f290-2a6d-11ef-91df-9f2f583abbec"},"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/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling 200 12ms","method":"POST","requestID":"0864f290-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"106439be-6869-40b8-9670-793b65c8a7e6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.261375} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.779526,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","rebac_allow":false,"scope_allow":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":"08671570-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling 200 12ms","method":"POST","requestID":"08671570-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"73930efbfe5cf3bcf0c99b6eaf1d7a6f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.318515,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383325,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI"} 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":"73930efbfe5cf3bcf0c99b6eaf1d7a6f"},"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/65e0f882-ec33-45a3-93ef-fe19be2bf088"} gateway-1 | {"time_local":"14/Jun/2024:16:42:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088 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":"73930efbfe5cf3bcf0c99b6eaf1d7a6f"} experiment-1 | {"level":"info","message":"GET /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088 200 14ms","method":"GET","requestID":"73930efbfe5cf3bcf0c99b6eaf1d7a6f","responseTime":14,"status":200,"url":"/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f6ddf115227381ab3ecd340fd12e7a8e","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.681808,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383325,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"f6ddf115227381ab3ecd340fd12e7a8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.056004,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383325,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI"} 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":"0872fc50-2a6d-11ef-91df-9f2f583abbec"},"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/a195dd0d-81d6-4202-9a59-dce168fe7e9e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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":"4ebf57e53c76e583154f5be5255252d7","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)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa195dd0d-81d6-4202-9a59-dce168fe7e9e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa195dd0d-81d6-4202-9a59-dce168fe7e9e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"abbfbb81-6528-41ea-bf30-9982641d208b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.3605015} 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/35e8815b-e44b-42ec-999c-0548c4f6250b"},{"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/9e13e62e-9a6a-4792-bdcc-6197510ca460"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8f58eb962011d00bd45116563ff3c296","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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24a969fc-3d87-4e00-8e7c-d300110ad9d7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.3609748} 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/35e8815b-e44b-42ec-999c-0548c4f6250b"},{"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/9e13e62e-9a6a-4792-bdcc-6197510ca460"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"}}},"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":"0872fc50-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"a195dd0d-81d6-4202-9a59-dce168fe7e9e","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/a195dd0d-81d6-4202-9a59-dce168fe7e9e 204 47ms","method":"DELETE","requestID":"0872fc50-2a6d-11ef-91df-9f2f583abbec","responseTime":47,"status":204,"url":"/peerconnections/a195dd0d-81d6-4202-9a59-dce168fe7e9e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F35e8815b-e44b-42ec-999c-0548c4f6250b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"df857115-0812-4adb-9931-5d42e6868cf4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.4110696} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.713409,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/35e8815b-e44b-42ec-999c-0548c4f6250b","object_type":"device","rebac_allow":false,"scope_allow":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":"087dd1c0-2a6d-11ef-91df-9f2f583abbec"},"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/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling 200 14ms","method":"POST","requestID":"087dd1c0-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/35e8815b-e44b-42ec-999c-0548c4f6250b/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F65e0f882-ec33-45a3-93ef-fe19be2bf088': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F65e0f882-ec33-45a3-93ef-fe19be2bf088","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"b036e054-a0ac-41dd-b446-7d20c63d4a20","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.4192479} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92bd65ca-7cef-42b6-95b2-bfc32165154f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.4198837} 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":"f6ddf115227381ab3ecd340fd12e7a8e"},"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:57580","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9e13e62e-9a6a-4792-bdcc-6197510ca460","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b59dfe4-d7e0-4a34-b065-9f521f207c18","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.4299786} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.794796,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460","object_type":"device","rebac_allow":false,"scope_allow":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":"088090e0-2a6d-11ef-91df-9f2f583abbec"},"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/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling 200 15ms","method":"POST","requestID":"088090e0-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/9e13e62e-9a6a-4792-bdcc-6197510ca460/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"} gateway-1 | {"time_local":"14/Jun/2024:16:42:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088 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":"f6ddf115227381ab3ecd340fd12e7a8e"} gateway-1 | {"time_local":"14/Jun/2024:16:42:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.657","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ad85019b7ea4f4e9b55b2dc2ac4fea5c"} experiment-1 | {"level":"info","message":"DELETE /experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088 204 172ms","method":"DELETE","requestID":"f6ddf115227381ab3ecd340fd12e7a8e","responseTime":172,"status":204,"url":"/experiments/65e0f882-ec33-45a3-93ef-fe19be2bf088"} gateway-1 | {"time_local":"14/Jun/2024:16:42:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.645","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6fe6b6996ababac40dfd6e7382cdd506"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"4ebf57e53c76e583154f5be5255252d7","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"4ebf57e53c76e583154f5be5255252d7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"8f58eb962011d00bd45116563ff3c296","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"8f58eb962011d00bd45116563ff3c296"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6fcd9a8b6a8e502550bd6bb294aebd71","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/9e13e62e-9a6a-4792-bdcc-6197510ca460' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.45972,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383325,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI"} 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":"6fcd9a8b6a8e502550bd6bb294aebd71"},"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/35e8815b-e44b-42ec-999c-0548c4f6250b' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7833d538-583f-4e40-a0b2-bda5108e2c2b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5217092} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6fcd9a8b6a8e502550bd6bb294aebd71"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b6b73fe-4b5f-4b14-b81c-1d4a997b933e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5282924} 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":"6fcd9a8b6a8e502550bd6bb294aebd71"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"510f01ba-8ab6-43e8-9726-4bf113a7a0aa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.53909} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9343f9d-e78c-410b-ba7a-48a458d7ecb7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5394518} 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":"6fcd9a8b6a8e502550bd6bb294aebd71"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"bd6577c4-2b73-486f-889b-c3a7ce4e349a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5443332} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6fcd9a8b6a8e502550bd6bb294aebd71"},"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":"14/Jun/2024:16:42: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.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6fcd9a8b6a8e502550bd6bb294aebd71"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"6fcd9a8b6a8e502550bd6bb294aebd71","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"11b83cb39650de5566bd9b7b4d31bd53","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.889987,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383325,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNX0.XsyVS-DF_pa3bRgoYs8oD12UiG1QF_HwpVmhBeAbZBI"} 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":"11b83cb39650de5566bd9b7b4d31bd53"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8aea2564-4193-40e2-aded-c0f3ca6c4783","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5703547} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"11b83cb39650de5566bd9b7b4d31bd53"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"219740a2-891e-42fc-b7b0-3254e7045c52","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5758984} 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":"11b83cb39650de5566bd9b7b4d31bd53"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"90931271-d0a6-4ee3-af5e-b31fafa9142a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5919535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0627166f-a974-4a53-a069-be1d50504eb4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.5921237} 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":"11b83cb39650de5566bd9b7b4d31bd53"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"9d86afd7-5cad-4545-98e0-c4a7c92dc113","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383325.596456} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"11b83cb39650de5566bd9b7b4d31bd53"},"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":"14/Jun/2024:16:42: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.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"11b83cb39650de5566bd9b7b4d31bd53"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"11b83cb39650de5566bd9b7b4d31bd53","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0aa4cb6cf6a04ee6d6928bbf78a98c7d","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9902c791a2871a7bf7d17d05f12f0798","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:57580","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.589874,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"0aa4cb6cf6a04ee6d6928bbf78a98c7d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.042297,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"9902c791a2871a7bf7d17d05f12f0798"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"4c818bfd-e382-4f8b-8018-31ec4af91746","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.093638} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0aa4cb6cf6a04ee6d6928bbf78a98c7d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"a81fdb92-c041-4ec9-bbd6-84d538b87984","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.0945961} 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":"9902c791a2871a7bf7d17d05f12f0798"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd55b6d0-35dd-47d0-9986-562cc4f1162a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.0988626} 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":"0aa4cb6cf6a04ee6d6928bbf78a98c7d"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"955d2801-d4d8-4ab8-b3c6-8e28903041be","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.1003911} 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":"9902c791a2871a7bf7d17d05f12f0798"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"7e5824b0-20fc-44fd-a722-294ed982c9c2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.1031585} 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":"9902c791a2871a7bf7d17d05f12f0798"},"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":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9902c791a2871a7bf7d17d05f12f0798"} device-1 | {"level":"info","message":"PATCH /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201 200 22ms","method":"PATCH","requestID":"9902c791a2871a7bf7d17d05f12f0798","responseTime":22,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e7e5fc67d148264b30815a6f56c146f7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"6f76b2c3-6cb5-42e1-9f41-3b47e4e581e2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.114275} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0aa4cb6cf6a04ee6d6928bbf78a98c7d"},"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:57580","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693126,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} device-1 | {"level":"info","message":"PATCH /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb 200 37ms","method":"PATCH","requestID":"0aa4cb6cf6a04ee6d6928bbf78a98c7d","responseTime":37,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"} 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":"e7e5fc67d148264b30815a6f56c146f7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0aa4cb6cf6a04ee6d6928bbf78a98c7d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5da540a20dbc57cb61e2ec6a681d5716","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.438049,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e7e5fc67d148264b30815a6f56c146f7"} 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":"5da540a20dbc57cb61e2ec6a681d5716"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"POST /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/websocket 200 18ms","method":"POST","requestID":"e7e5fc67d148264b30815a6f56c146f7","responseTime":18,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5da540a20dbc57cb61e2ec6a681d5716"} device-1 | {"level":"info","message":"POST /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/websocket 200 22ms","method":"POST","requestID":"5da540a20dbc57cb61e2ec6a681d5716","responseTime":22,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7b3f3a66cafd10e1ec30a36b98fd1492","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.092912,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"7b3f3a66cafd10e1ec30a36b98fd1492"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"8104f0c5-0a6a-43e1-af79-12d3437a89a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.2028885} 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":"7b3f3a66cafd10e1ec30a36b98fd1492"},"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":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201? 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":"7b3f3a66cafd10e1ec30a36b98fd1492"} device-1 | {"level":"info","message":"GET /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201? 200 11ms","method":"GET","requestID":"7b3f3a66cafd10e1ec30a36b98fd1492","responseTime":11,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"436cc9af3e766fe39b318f2fa03d9ac7","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.204896,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"436cc9af3e766fe39b318f2fa03d9ac7"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"c9cfc22d-c88b-4f42-8c89-d0be076da672","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.2266066} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"436cc9af3e766fe39b318f2fa03d9ac7"},"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":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 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":"436cc9af3e766fe39b318f2fa03d9ac7"} device-1 | {"level":"info","message":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 200 17ms","method":"GET","requestID":"436cc9af3e766fe39b318f2fa03d9ac7","responseTime":17,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eb00147c0af2e4deab0f7831f56f2945","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:57580","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.302645,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"eb00147c0af2e4deab0f7831f56f2945"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"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:57580","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.280374,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"0903caa0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817435,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"090418c0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"85a361b1-9b8e-4fc1-b443-2f5a3aaf7d0c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.2945726} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0903caa0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"bbccd016-ba0f-4faf-87b5-659895312036","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.295822} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"090418c0-2a6d-11ef-91df-9f2f583abbec"},"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/df63d0c2-7354-4bf0-8fc1-59562df1e201? 200 21ms","method":"GET","requestID":"0903caa0-2a6d-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 200 20ms","method":"GET","requestID":"090418c0-2a6d-11ef-91df-9f2f583abbec","responseTime":20,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"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/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.283689,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"090ec720-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.812403,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"090f1540-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9a1657f-1741-4f7b-b3fc-30e08764f7b7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.3661823} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"621e767a-b7bb-4621-9443-1a25ecbbe4fa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.367296} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.943262,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","rebac_allow":false,"scope_allow":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":"090f6360-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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":"090ec720-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"13ade0b5-b0fa-4831-87ae-f2377a7c7dbd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.3688595} 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":"090f1540-2a6d-11ef-91df-9f2f583abbec"},"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/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling 200 19ms","method":"POST","requestID":"090f6360-2a6d-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201? 200 24ms","method":"GET","requestID":"090ec720-2a6d-11ef-91df-9f2f583abbec","responseTime":24,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 200 23ms","method":"GET","requestID":"090f1540-2a6d-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0903cc71-95b7-499c-9011-792f2f999364#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0903cc71-95b7-499c-9011-792f2f999364","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"6a98e51a-eff5-45be-810d-e435c2cf123a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.3820841} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"22ba17c8-d79d-49ed-bb0d-cffaef0f2abe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.3824165} 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":"eb00147c0af2e4deab0f7831f56f2945"},"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:57580","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21028e8a-1bff-493f-9f67-1c0339a55492","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.3861163} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4bc0d53-5be6-48ad-86d7-be2ff47f6aa9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.38785} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.066934,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.428582,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","rebac_allow":false,"scope_allow":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":"091297b0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","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":"14/Jun/2024:16:42: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.159","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eb00147c0af2e4deab0f7831f56f2945"} experiment-1 | {"level":"info","message":"POST /experiments? 201 153ms","method":"POST","requestID":"eb00147c0af2e4deab0f7831f56f2945","responseTime":153,"status":201,"url":"/experiments?"} 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":"0912e5d0-2a6d-11ef-91df-9f2f583abbec"},"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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling 200 17ms","method":"POST","requestID":"091297b0-2a6d-11ef-91df-9f2f583abbec","responseTime":17,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling 200 15ms","method":"POST","requestID":"0912e5d0-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3bd8e1f54ae6b7081c6f0b3e4b4f4663","responseTime":2,"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:57580","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27465,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"3bd8e1f54ae6b7081c6f0b3e4b4f4663"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c19cc66b-94bc-4827-ae5e-468cb88b567d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4040844} authorization-1 | {"client_addr":"127.0.0.1:45762","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.869334,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","rebac_allow":false,"scope_allow":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":"0915a4f0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.539059533Z"}]},"request_id":"3cd06823-3236-42b0-aeac-9777b2c34e9f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4064794} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bd8e1f54ae6b7081c6f0b3e4b4f4663"},"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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling 200 11ms","method":"POST","requestID":"0915a4f0-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201? 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":"3bd8e1f54ae6b7081c6f0b3e4b4f4663"} device-1 | {"level":"info","message":"GET /devices/df63d0c2-7354-4bf0-8fc1-59562df1e201? 200 13ms","method":"GET","requestID":"3bd8e1f54ae6b7081c6f0b3e4b4f4663","responseTime":13,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"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":"f431d559-d050-4ef8-84f8-5e57efe6d4ab"},{"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":"dd2d8947-0aea-4417-bceb-fdfb84da7a8c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5292e1e8-6f4d-4671-a698-f14402b78472"}]},"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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"},{"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/df63d0c2-7354-4bf0-8fc1-59562df1e201"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ec28729858f3dccdbf2cfea413a861d","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.814763,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"0917c7d0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72111,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383326,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyNn0.trB-nNwqNLFTJ7siFmrzCQ1X7mTQxeCLWZrC7si_its"} 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":"0ec28729858f3dccdbf2cfea413a861d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:05.591924791Z"}]},"request_id":"3febf670-cedf-4d6f-b2b2-b286c1cba556","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4242485} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0ec28729858f3dccdbf2cfea413a861d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"15ea792d-d7f9-4a06-97ba-fed390f3648c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4271412} gateway-1 | {"time_local":"14/Jun/2024:16:42:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 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":"0ec28729858f3dccdbf2cfea413a861d"} device-1 | {"level":"info","message":"GET /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb? 200 9ms","method":"GET","requestID":"0ec28729858f3dccdbf2cfea413a861d","responseTime":9,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"775c994f-7dc8-4e81-b85b-1062cfbd1534","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.427384} 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":"0917c7d0-2a6d-11ef-91df-9f2f583abbec"},"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/e31eac09-a231-4746-bd53-e4516e9908d8'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"0917c7d0-2a6d-11ef-91df-9f2f583abbec","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16510743-3c44-49d3-b74e-2d6735cff39f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4759617} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.810961,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0920a170-2a6d-11ef-91df-9f2f583abbec"},"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/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling 200 8ms","method":"POST","requestID":"0920a170-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f780ccca-a7be-4900-9dc2-da392a6a3499","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383326.4855142} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.082822,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09222810-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling 200 8ms","method":"POST","requestID":"09222810-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","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/e31eac09-a231-4746-bd53-e4516e9908d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","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":"9e61197f0072cda6939b05a029ccd209","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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"},{"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/df63d0c2-7354-4bf0-8fc1-59562df1e201"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"9e61197f0072cda6939b05a029ccd209","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"9e61197f0072cda6939b05a029ccd209"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","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/e31eac09-a231-4746-bd53-e4516e9908d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","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":"b14e8fe7faea21ba7a743dae835ccc71","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"},{"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/df63d0c2-7354-4bf0-8fc1-59562df1e201"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe31eac09-a231-4746-bd53-e4516e9908d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"645e3c3d-e9a9-4cce-a7c2-dc2dc290a37c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.5694604} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.766772,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8","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":"0a5fb120-2a6d-11ef-91df-9f2f583abbec"},"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/e31eac09-a231-4746-bd53-e4516e9908d8 200 13ms","method":"GET","requestID":"0a5fb120-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"b14e8fe7faea21ba7a743dae835ccc71","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"b14e8fe7faea21ba7a743dae835ccc71"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90380d2a-2b40-439b-b61a-56c7dd879ae2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.6060092} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.594995,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0a657d80-2a6d-11ef-91df-9f2f583abbec"},"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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling 200 12ms","method":"POST","requestID":"0a657d80-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35e8d070-37a6-448b-953b-674d331b8655","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.621431} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.956703,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","rebac_allow":false,"scope_allow":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":"0a67a060-2a6d-11ef-91df-9f2f583abbec"},"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/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling 200 14ms","method":"POST","requestID":"0a67a060-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c637f9b40ecb1f0a75d2d2036b7ea29d","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0903cc71-95b7-499c-9011-792f2f999364"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.245711,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383328,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE"} 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":"c637f9b40ecb1f0a75d2d2036b7ea29d"},"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/0903cc71-95b7-499c-9011-792f2f999364"} experiment-1 | {"level":"info","message":"GET /experiments/0903cc71-95b7-499c-9011-792f2f999364 200 17ms","method":"GET","requestID":"c637f9b40ecb1f0a75d2d2036b7ea29d","responseTime":17,"status":200,"url":"/experiments/0903cc71-95b7-499c-9011-792f2f999364"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0903cc71-95b7-499c-9011-792f2f999364 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c637f9b40ecb1f0a75d2d2036b7ea29d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3409b48f3a56bc4a0e4563ee7dc1cdce","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0903cc71-95b7-499c-9011-792f2f999364"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.504317,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383328,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE"} 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":"3409b48f3a56bc4a0e4563ee7dc1cdce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.257476,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383328,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE"} 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":"0a73ae50-2a6d-11ef-91df-9f2f583abbec"},"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/e31eac09-a231-4746-bd53-e4516e9908d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe31eac09-a231-4746-bd53-e4516e9908d8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe31eac09-a231-4746-bd53-e4516e9908d8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"723f6931-493d-4f6c-a49f-0a4a89ef0bf0","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.716735} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"012e113f-7663-4f68-a351-ebf4fee0565e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.717186} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1214290ab62046578626be8fee6d15c3","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":"0a73ae50-2a6d-11ef-91df-9f2f583abbec"},"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","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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"},{"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/df63d0c2-7354-4bf0-8fc1-59562df1e201"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8be651505b4b0096ac3d01129d55db3e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb"},{"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/df63d0c2-7354-4bf0-8fc1-59562df1e201"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"e31eac09-a231-4746-bd53-e4516e9908d8","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/e31eac09-a231-4746-bd53-e4516e9908d8 204 50ms","method":"DELETE","requestID":"0a73ae50-2a6d-11ef-91df-9f2f583abbec","responseTime":50,"status":204,"url":"/peerconnections/e31eac09-a231-4746-bd53-e4516e9908d8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0903cc71-95b7-499c-9011-792f2f999364"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9141ca7f-976f-4c25-bbc7-d6dceaa7271a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.774859} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.26199,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb","object_type":"device","rebac_allow":false,"scope_allow":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":"0a7ef8f0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0903cc71-95b7-499c-9011-792f2f999364': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0903cc71-95b7-499c-9011-792f2f999364","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"632e10d3-2b65-4671-bf6e-f431bcd742e3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.7814925} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/signaling 200 15ms","method":"POST","requestID":"0a7ef8f0-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb/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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e6179888-b508-47ac-bc07-4e274a185725","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.7821355} 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":"3409b48f3a56bc4a0e4563ee7dc1cdce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdf63d0c2-7354-4bf0-8fc1-59562df1e201","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"151733c0-c500-486c-9df9-1c56bf6e9ec3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.7930715} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.93309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201","object_type":"device","rebac_allow":false,"scope_allow":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":"0a81b810-2a6d-11ef-91df-9f2f583abbec"},"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/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling 200 15ms","method":"POST","requestID":"0a81b810-2a6d-11ef-91df-9f2f583abbec","responseTime":15,"status":200,"url":"/devices/df63d0c2-7354-4bf0-8fc1-59562df1e201/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0903cc71-95b7-499c-9011-792f2f999364"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0903cc71-95b7-499c-9011-792f2f999364 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":"3409b48f3a56bc4a0e4563ee7dc1cdce"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.703","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2c5083f747b2ebc199719262d1af9b6b"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.719","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"81a85ff8f4c00004650f68e3400e633e"} experiment-1 | {"level":"info","message":"DELETE /experiments/0903cc71-95b7-499c-9011-792f2f999364 204 173ms","method":"DELETE","requestID":"3409b48f3a56bc4a0e4563ee7dc1cdce","responseTime":173,"status":204,"url":"/experiments/0903cc71-95b7-499c-9011-792f2f999364"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"1214290ab62046578626be8fee6d15c3","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"1214290ab62046578626be8fee6d15c3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"8be651505b4b0096ac3d01129d55db3e","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"8be651505b4b0096ac3d01129d55db3e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"636f1116200868251ada498e0625d852","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/df63d0c2-7354-4bf0-8fc1-59562df1e201' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.051999,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383328,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE"} 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":"636f1116200868251ada498e0625d852"},"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/29cc91c7-5820-4f97-aa0d-306c7aa1cbcb' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e9dfe802-fd56-4f89-8dfc-ab0a5e0f93a5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.881697} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"636f1116200868251ada498e0625d852"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1e45818-6ae3-4b3f-974b-d5b5d79fdb06","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.8888614} 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":"636f1116200868251ada498e0625d852"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"1110d495-cddc-4298-a627-4ee0e273ce31","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.8999472} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02b0143e-8201-4c04-85ea-a29a6a1425dd","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.9003246} 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":"636f1116200868251ada498e0625d852"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.899917425Z"}]},"request_id":"66fb793b-8277-4d21-ab1d-7cf312ddedfc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.9052997} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"636f1116200868251ada498e0625d852"},"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":"14/Jun/2024:16:42: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.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"636f1116200868251ada498e0625d852"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"636f1116200868251ada498e0625d852","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"76946987223fa1060e00fdaaf8fb952d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.088307,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383328,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMyOH0.YVNy7n-sDuAmw-UOY3ONfGyOL5o3eZ5ClivmwmDujFE"} 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":"76946987223fa1060e00fdaaf8fb952d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d0ab8d45-e379-4e9e-8d64-e1697881f2fa","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.9319198} 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":"76946987223fa1060e00fdaaf8fb952d"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c7084487-69ba-4fac-ac04-f75f8780511d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.93725} 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":"76946987223fa1060e00fdaaf8fb952d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"b6b768cf-8d54-4b28-a939-94f6cdfd9c4b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.9534686} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"51208490-f694-474e-8477-fc7505fca7d4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.9535651} 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":"76946987223fa1060e00fdaaf8fb952d"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.953433135Z"}]},"request_id":"a346ac5e-0683-4a46-a7a2-7a6e5fcf233a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383328.958467} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"76946987223fa1060e00fdaaf8fb952d"},"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":"14/Jun/2024:16:42: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.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"76946987223fa1060e00fdaaf8fb952d"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"76946987223fa1060e00fdaaf8fb952d","responseTime":48,"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":"e82608e3341a013ddef2b684ec0cac3f","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:42:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/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":"e82608e3341a013ddef2b684ec0cac3f"} device-1 | {"level":"info","message":"OPTIONS /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/websocket 200 1ms","method":"OPTIONS","requestID":"e82608e3341a013ddef2b684ec0cac3f","responseTime":1,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/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":"aab3309c8b93a20a2ba34f5e2b1fc3bc","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:42:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/98760538-6444-488b-a15e-12fceae5f128/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":"aab3309c8b93a20a2ba34f5e2b1fc3bc"} device-1 | {"level":"info","message":"OPTIONS /devices/98760538-6444-488b-a15e-12fceae5f128/websocket 200 1ms","method":"OPTIONS","requestID":"aab3309c8b93a20a2ba34f5e2b1fc3bc","responseTime":1,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMH0.2RM4EPclokpe0riE05GZS_oU41FAwS_SUyNLUPVgj9c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fbb4229259158c28ed558601b8582ef9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMH0.2RM4EPclokpe0riE05GZS_oU41FAwS_SUyNLUPVgj9c","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:10Z"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"939f9295f91a9cdd446ba4d25a85ee5c","responseTime":6,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.319279,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383330,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMH0.2RM4EPclokpe0riE05GZS_oU41FAwS_SUyNLUPVgj9c"} 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":"fbb4229259158c28ed558601b8582ef9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20257,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383330,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMH0.2RM4EPclokpe0riE05GZS_oU41FAwS_SUyNLUPVgj9c"} 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":"939f9295f91a9cdd446ba4d25a85ee5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/websocket 200 28ms","method":"POST","requestID":"fbb4229259158c28ed558601b8582ef9","responseTime":28,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:42:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/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":"fbb4229259158c28ed558601b8582ef9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:42:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/98760538-6444-488b-a15e-12fceae5f128/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":"939f9295f91a9cdd446ba4d25a85ee5c"} device-1 | {"level":"info","message":"POST /devices/98760538-6444-488b-a15e-12fceae5f128/websocket 200 32ms","method":"POST","requestID":"939f9295f91a9cdd446ba4d25a85ee5c","responseTime":32,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"96eab357cd914b4d971cda70b70080ca","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.15454,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"96eab357cd914b4d971cda70b70080ca"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.899917425Z"}]},"request_id":"80a34661-7d71-413c-9f9a-9eb36d9ec2bc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.0340886} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"96eab357cd914b4d971cda70b70080ca"},"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":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/98760538-6444-488b-a15e-12fceae5f128? 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":"96eab357cd914b4d971cda70b70080ca"} device-1 | {"level":"info","message":"GET /devices/98760538-6444-488b-a15e-12fceae5f128? 200 16ms","method":"GET","requestID":"96eab357cd914b4d971cda70b70080ca","responseTime":16,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"75541ed1d724ea9fdea7d246a5d35338","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.129293,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"75541ed1d724ea9fdea7d246a5d35338"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.953433135Z"}]},"request_id":"4c912e44-7396-406c-9d0e-131a770d63a9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.0572982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"75541ed1d724ea9fdea7d246a5d35338"},"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":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 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":"75541ed1d724ea9fdea7d246a5d35338"} device-1 | {"level":"info","message":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 200 16ms","method":"GET","requestID":"75541ed1d724ea9fdea7d246a5d35338","responseTime":16,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e2c088772918f354ed968712ca5acf8c","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:57580","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.307036,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"e2c088772918f354ed968712ca5acf8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"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:57580","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888116,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"0be566c0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.68084,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"0be5b4e0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.899917425Z"}]},"request_id":"13335366-aa20-4826-a07f-e0ed81c6587d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.127746} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0be566c0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.953433135Z"}]},"request_id":"3e825e3b-1d98-4f96-b28c-cf91a532b558","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.1317036} 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":"0be5b4e0-2a6d-11ef-91df-9f2f583abbec"},"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/98760538-6444-488b-a15e-12fceae5f128? 200 18ms","method":"GET","requestID":"0be566c0-2a6d-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 200 19ms","method":"GET","requestID":"0be5b4e0-2a6d-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"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:57580","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.060759,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"0bf08a50-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238941,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"0bf0d870-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:49354","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.953433135Z"}]},"request_id":"315f77ba-afc0-4e16-be07-66ca8ce5777b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2014816} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e98138dc-bc14-4ce2-828a-1c038ebcc17f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.201988} 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":"0bf0d870-2a6d-11ef-91df-9f2f583abbec"},"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:49354","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580994,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.899917425Z"}]},"request_id":"973b7b20-c9ff-410e-b6f1-a5ef92076776","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2021878} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0bf08a50-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","rebac_allow":false,"scope_allow":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":"0bf0ff80-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 200 18ms","method":"GET","requestID":"0bf0d870-2a6d-11ef-91df-9f2f583abbec","responseTime":18,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/98760538-6444-488b-a15e-12fceae5f128? 200 21ms","method":"GET","requestID":"0bf08a50-2a6d-11ef-91df-9f2f583abbec","responseTime":21,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/98760538-6444-488b-a15e-12fceae5f128/signaling 200 19ms","method":"POST","requestID":"0bf0ff80-2a6d-11ef-91df-9f2f583abbec","responseTime":19,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0c1b69da-0e9b-4a7d-b12a-b113d7865318#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0c1b69da-0e9b-4a7d-b12a-b113d7865318","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"267458bb-984a-4e94-8016-6aa0d1b00b66","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.212848} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a88cc861-88ed-4739-8420-c97bb45c26d8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2131627} 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":"e2c088772918f354ed968712ca5acf8c"},"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:57580","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"adb2e8bb-9209-470c-8ee1-6a70cf5619f3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2189667} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.901733,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0bf40cc0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16252b98-db26-4020-be41-b6d814c027f4","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2197292} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.545454,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.155","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2c088772918f354ed968712ca5acf8c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 149ms","method":"POST","requestID":"e2c088772918f354ed968712ca5acf8c","responseTime":149,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","rebac_allow":false,"scope_allow":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":"0bf45ae0-2a6d-11ef-91df-9f2f583abbec"},"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/98760538-6444-488b-a15e-12fceae5f128/signaling 200 12ms","method":"POST","requestID":"0bf40cc0-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling 200 13ms","method":"POST","requestID":"0bf45ae0-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"81ec8e1f51931f69918066c1c8c332f8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"64853bc9-9a4c-4b61-834c-de2ddd0cb1fe","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2334645} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.902469,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"81ec8e1f51931f69918066c1c8c332f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.740948,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","rebac_allow":false,"scope_allow":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":"0bf67dc0-2a6d-11ef-91df-9f2f583abbec"},"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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling 200 11ms","method":"POST","requestID":"0bf67dc0-2a6d-11ef-91df-9f2f583abbec","responseTime":11,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.899917425Z"}]},"request_id":"c1d004dc-6ea0-4723-89c1-92602d96fd36","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2390063} 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":"81ec8e1f51931f69918066c1c8c332f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"4e08d349-9c6a-4097-a575-60a7e06306a1"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"8c955ca4-ddde-4e16-a02f-4d549c779554"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a1b09acc-c1d1-4b56-b785-908b166ba26f"}]},"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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128"}],"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":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/98760538-6444-488b-a15e-12fceae5f128? 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":"81ec8e1f51931f69918066c1c8c332f8"} device-1 | {"level":"info","message":"GET /devices/98760538-6444-488b-a15e-12fceae5f128? 200 13ms","method":"GET","requestID":"81ec8e1f51931f69918066c1c8c332f8","responseTime":13,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.349806,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"0bf87990-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c6731284beb5027c1bf293f1fae0691b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.822624,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"c6731284beb5027c1bf293f1fae0691b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"1d95d818-28e1-4838-abc1-0e276ab664d3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2562668} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e5349ab-589d-4d78-89b8-a628eb2bae5f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2564359} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:08.953433135Z"}]},"request_id":"4666960c-c02a-4142-81a7-42aa0fdfc358","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.2571888} 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":"0bf87990-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c6731284beb5027c1bf293f1fae0691b"},"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":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 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":"c6731284beb5027c1bf293f1fae0691b"} device-1 | {"level":"info","message":"GET /devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f? 200 15ms","method":"GET","requestID":"c6731284beb5027c1bf293f1fae0691b","responseTime":15,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f?"} 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/b49fb88c-055f-4c95-b7d5-51acbb02d178'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178'"} 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 30ms","method":"POST","requestID":"0bf87990-2a6d-11ef-91df-9f2f583abbec","responseTime":30,"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/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"899f5f1a-e42a-4afd-9399-55c42593082a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.3028371} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.103112,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0c012c20-2a6d-11ef-91df-9f2f583abbec"},"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/98760538-6444-488b-a15e-12fceae5f128/signaling 200 9ms","method":"POST","requestID":"0c012c20-2a6d-11ef-91df-9f2f583abbec","responseTime":9,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2919f303-8984-4d38-a530-92f0fdbade61","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.3132904} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.47227,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","rebac_allow":false,"scope_allow":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":"0c02d9d0-2a6d-11ef-91df-9f2f583abbec"},"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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling 200 8ms","method":"POST","requestID":"0c02d9d0-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2d63014002d04a5a2a9da389353fc6ee","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":"new","url":"http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"2d63014002d04a5a2a9da389353fc6ee","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"2d63014002d04a5a2a9da389353fc6ee"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","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/b49fb88c-055f-4c95-b7d5-51acbb02d178' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","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":"bc60e248ec5e1f843225e340fceec83e","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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb49fb88c-055f-4c95-b7d5-51acbb02d178","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9fc23c32-cfc6-4552-a0c3-f42e07f66c5c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.385189} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.14995,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178","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":"0c0dd650-2a6d-11ef-91df-9f2f583abbec"},"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/b49fb88c-055f-4c95-b7d5-51acbb02d178 200 7ms","method":"GET","requestID":"0c0dd650-2a6d-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"bc60e248ec5e1f843225e340fceec83e","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"bc60e248ec5e1f843225e340fceec83e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04aced4d-a367-4a31-9dd2-cd0584607d08","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.411038} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.119846,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","rebac_allow":false,"scope_allow":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":"0c11cdf0-2a6d-11ef-91df-9f2f583abbec"},"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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling 200 7ms","method":"POST","requestID":"0c11cdf0-2a6d-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"001d033d-6e95-4df3-8908-b6b6bbb26dc5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.4204886} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.264473,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","rebac_allow":false,"scope_allow":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":"0c132d80-2a6d-11ef-91df-9f2f583abbec"},"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/98760538-6444-488b-a15e-12fceae5f128/signaling 200 8ms","method":"POST","requestID":"0c132d80-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"35a923f50892425782cc148a6c3a0bc9","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.875735,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","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":"35a923f50892425782cc148a6c3a0bc9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} experiment-1 | {"level":"info","message":"GET /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318 200 14ms","method":"GET","requestID":"35a923f50892425782cc148a6c3a0bc9","responseTime":14,"status":200,"url":"/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"35a923f50892425782cc148a6c3a0bc9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7dad0c642fc3a4fd767ebbf52ff8cc2e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.01433,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"7dad0c642fc3a4fd767ebbf52ff8cc2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.673513,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"0c1d3fa0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","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":"509120f3323c1858b083a99cd0fc85b2","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb49fb88c-055f-4c95-b7d5-51acbb02d178': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb49fb88c-055f-4c95-b7d5-51acbb02d178","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"0faf55db-2286-4655-9a7a-3b6fd70630a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.4983969} 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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"}}},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5f5a2a84-8be9-44be-a264-930ada6ea4fb","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.4986968} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f55719c6a1264ce593255cdf2e525c26","responseTime":1,"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":"0c1d3fa0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"b49fb88c-055f-4c95-b7d5-51acbb02d178","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/b49fb88c-055f-4c95-b7d5-51acbb02d178 204 39ms","method":"DELETE","requestID":"0c1d3fa0-2a6d-11ef-91df-9f2f583abbec","responseTime":39,"status":204,"url":"/peerconnections/b49fb88c-055f-4c95-b7d5-51acbb02d178"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5bd60c7-46e1-4c84-8d48-58e85eb3055f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6d1e5733-062c-4e6c-9a51-176493c6fdd3","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.5430727} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.418526,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0c25cb20-2a6d-11ef-91df-9f2f583abbec"},"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/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling 200 10ms","method":"POST","requestID":"0c25cb20-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0c1b69da-0e9b-4a7d-b12a-b113d7865318': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0c1b69da-0e9b-4a7d-b12a-b113d7865318","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"cbe0be25-750a-4f9c-bd52-bff182e0c594","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.5491552} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7c461b02-d69d-4b2e-a0d8-cf9a2247b7b8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.5494645} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7dad0c642fc3a4fd767ebbf52ff8cc2e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98760538-6444-488b-a15e-12fceae5f128","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0066ca46-6360-4b14-9cec-0b2a0cb44746","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.5550988} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.869332,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128","object_type":"device","rebac_allow":false,"scope_allow":true,"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":"0c279fe0-2a6d-11ef-91df-9f2f583abbec"},"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/98760538-6444-488b-a15e-12fceae5f128/signaling 200 10ms","method":"POST","requestID":"0c279fe0-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/98760538-6444-488b-a15e-12fceae5f128/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7dad0c642fc3a4fd767ebbf52ff8cc2e"} experiment-1 | {"level":"info","message":"DELETE /experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318 204 135ms","method":"DELETE","requestID":"7dad0c642fc3a4fd767ebbf52ff8cc2e","responseTime":135,"status":204,"url":"/experiments/0c1b69da-0e9b-4a7d-b12a-b113d7865318"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 112ms","method":"POST","requestID":"509120f3323c1858b083a99cd0fc85b2","responseTime":112,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.116","http_referrer":"","http_user_agent":"node-fetch","requestID":"509120f3323c1858b083a99cd0fc85b2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 112ms","method":"POST","requestID":"f55719c6a1264ce593255cdf2e525c26","responseTime":112,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.116","http_referrer":"","http_user_agent":"node-fetch","requestID":"f55719c6a1264ce593255cdf2e525c26"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d57537e769a8fce64a72509eab9b8200","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.820997,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"d57537e769a8fce64a72509eab9b8200"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"0.632","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bbb09a5baadbd868d1a5827475f63c4f"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2645","request_time":"0.621","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46a1c45e33a167e2be9ea36b68f174a5"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b5bd60c7-46e1-4c84-8d48-58e85eb3055f' 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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"429ade0c-e0ff-414c-8d53-cfbc451237f8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6361163} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d57537e769a8fce64a72509eab9b8200"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/98760538-6444-488b-a15e-12fceae5f128' 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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a869c4c0-b4d1-42e6-8fb1-bc1f655d2159","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6410282} 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":"d57537e769a8fce64a72509eab9b8200"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a4243d4d-a8f2-49ab-83a9-25f118390f3e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6514862} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ecd5a1ac-34ea-4496-bdec-57fc5c0d0df2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6516316} 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":"d57537e769a8fce64a72509eab9b8200"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.651456767Z"}]},"request_id":"75200722-3b41-41f1-9734-0bdf7f2f07ca","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6554215} 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":"d57537e769a8fce64a72509eab9b8200"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"d57537e769a8fce64a72509eab9b8200","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d57537e769a8fce64a72509eab9b8200"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8626191ddfaac6def644399b07562cd4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.746845,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383331,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzMX0.-iLXjmyZImZr3jjGHW1vwXVWv3C_lhxGT98_QHHxhxY"} 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":"8626191ddfaac6def644399b07562cd4"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"36da6a57-001f-44c2-95ee-44b5d49163de","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6796436} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8626191ddfaac6def644399b07562cd4"},"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:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54bd7002-97b7-4b47-8ee8-c5b68653320e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6841867} 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":"8626191ddfaac6def644399b07562cd4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"997f6bcd-6431-4bcc-a113-5fee410cf1cc","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6995916} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1255537-d7fd-4bb2-814d-f02f211014c2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.6997201} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8626191ddfaac6def644399b07562cd4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"a4b23649-982d-4fcc-b559-1b88f9c1c289","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383331.7031136} 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":"8626191ddfaac6def644399b07562cd4"},"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 42ms","method":"POST","requestID":"8626191ddfaac6def644399b07562cd4","responseTime":42,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:42:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8626191ddfaac6def644399b07562cd4"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c56ecbe3aa48b7c16f6de160e899ac42","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:42:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eace46f3-5da9-42e7-854e-4300b049f276/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":"c56ecbe3aa48b7c16f6de160e899ac42"} device-1 | {"level":"info","message":"OPTIONS /devices/eace46f3-5da9-42e7-854e-4300b049f276/websocket 200 1ms","method":"OPTIONS","requestID":"c56ecbe3aa48b7c16f6de160e899ac42","responseTime":1,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79e4891c3d6e5800d9d337914cf0d610","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.168605,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"79e4891c3d6e5800d9d337914cf0d610"},"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":"14/Jun/2024:16:42:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eace46f3-5da9-42e7-854e-4300b049f276/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"79e4891c3d6e5800d9d337914cf0d610"} device-1 | {"level":"info","message":"POST /devices/eace46f3-5da9-42e7-854e-4300b049f276/websocket 200 22ms","method":"POST","requestID":"79e4891c3d6e5800d9d337914cf0d610","responseTime":22,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c5e831cfdbb3d63b5acaa266ac731f70","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.370341,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"c5e831cfdbb3d63b5acaa266ac731f70"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"4e899b03-32e2-4459-8812-4745f9a71166","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383333.783931} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c5e831cfdbb3d63b5acaa266ac731f70"},"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":"14/Jun/2024:16:42:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 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":"c5e831cfdbb3d63b5acaa266ac731f70"} device-1 | {"level":"info","message":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 200 16ms","method":"GET","requestID":"c5e831cfdbb3d63b5acaa266ac731f70","responseTime":16,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f416cf56aa17165b4198b2e8358d7fdc","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:57580","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.2298,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"f416cf56aa17165b4198b2e8358d7fdc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"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:57580","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.591836,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"0d84e5f0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.58605,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"0d853410-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d53f163-7a42-44de-9f8f-c1cc3af6a5da","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.651456767Z"}]},"request_id":"de109b25-0908-4523-86f0-cb2e3c0e6121","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383333.8465822} 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":"0d84e5f0-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"023f7684-b92d-4493-8cdd-ab1e09671a82","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383333.8471997} 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":"0d853410-2a6d-11ef-91df-9f2f583abbec"},"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/7d53f163-7a42-44de-9f8f-c1cc3af6a5da? 200 14ms","method":"GET","requestID":"0d84e5f0-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 200 14ms","method":"GET","requestID":"0d853410-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.212423,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:13Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"451","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d89c7f0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"ff85095f-d04e-4ae5-8cc2-4eab30cb8269","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383333.908202} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"49ced514-e7a9-4328-b1d0-f8c7502ba2ae","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383333.9085634} 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":"0d89c7f0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 22ms","method":"POST","requestID":"0d911af0-2a6d-11ef-856a-e564dbce4c26","responseTime":22,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 78ms","method":"POST","requestID":"0d89c7f0-2a6d-11ef-91df-9f2f583abbec","responseTime":78,"status":201,"url":"/devices/7d53f163-7a42-44de-9f8f-c1cc3af6a5da?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"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/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.869134,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"0d9dec30-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.043683,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"0d9e6160-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ee5edd8-b362-42e4-8549-401b893f53c7","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.0179722} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.438493,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","rebac_allow":false,"scope_allow":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":"0d9ed690-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:13.908150760Z"}]},"request_id":"18cc81d4-0c90-4f9a-bd86-ee65813e0148","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.0207176} 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":"0d9dec30-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"2b14651c-ce81-440c-9194-d44007c7b46e","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.0246181} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device 4f371258-f9e5-4a88-af72-4f50d45a4d74","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device 4f371258-f9e5-4a88-af72-4f50d45a4d74\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/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"0d9ed690-2a6d-11ef-91df-9f2f583abbec"} device-1 | {"level":"info","message":"POST /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling 404 18ms","method":"POST","requestID":"0d9ed690-2a6d-11ef-91df-9f2f583abbec","responseTime":18,"status":404,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/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":"0d9e6160-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device 4f371258-f9e5-4a88-af72-4f50d45a4d74"},"status":404}},"level":"error","message":"Could not send status-update message"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74? 200 31ms","method":"GET","requestID":"0d9dec30-2a6d-11ef-91df-9f2f583abbec","responseTime":31,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 200 30ms","method":"GET","requestID":"0d9e6160-2a6d-11ef-91df-9f2f583abbec","responseTime":30,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276?"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"885dfd3b-1b95-45d1-a48f-ae7c0f2e6233","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.036446} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd0db3d3-733d-4991-ae4d-48f469d012a2#owner@http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd0db3d3-733d-4991-ae4d-48f469d012a2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"a53e089a-6cbc-4add-9171-19e790fcf07c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.0371993} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0aa978a9-ef96-472c-bb76-99a5a08f218f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383334.0376534} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.97091,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","rebac_allow":false,"scope_allow":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":"0da20ae0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} 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":"f416cf56aa17165b4198b2e8358d7fdc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling 200 12ms","method":"POST","requestID":"0da20ae0-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2","user":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:42:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.256","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f416cf56aa17165b4198b2e8358d7fdc"} experiment-1 | {"level":"info","message":"POST /experiments? 201 249ms","method":"POST","requestID":"f416cf56aa17165b4198b2e8358d7fdc","responseTime":249,"status":201,"url":"/experiments?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f8277e956d890625bfb3199abaae309e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/websocket 200 1ms","method":"OPTIONS","requestID":"f8277e956d890625bfb3199abaae309e","responseTime":1,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:42:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/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":"f8277e956d890625bfb3199abaae309e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6IlE4Rnp1RVkwQnJuak9kdmY0RUdfQ3dfMDQ0VGd0T3Q3WnRmRS1LUFFGVWZRaUNMUnJ4em02SlhPSXlRbzNmNGIwN2NrLU5VdEVtUTFMaFN5MGZFR1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.Et4CzGERPK-YMPrjijPY50e8dSD0nBNSGJxAYCAOy3o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"32614dfb72827f66415edf845c502eed","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.273173,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","payload":{"admin":true,"edgeToken":"Q8FzuEY0BrnjOdvf4EG_Cw_044TgtOt7ZtfE-KPQFUfQiCLRrxzm6JXOIyQo3f4b07ck-NUtEmQ1LhSy0fEGWQ","iat":1718383336,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6IlE4Rnp1RVkwQnJuak9kdmY0RUdfQ3dfMDQ0VGd0T3Q3WnRmRS1LUFFGVWZRaUNMUnJ4em02SlhPSXlRbzNmNGIwN2NrLU5VdEVtUTFMaFN5MGZFR1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.Et4CzGERPK-YMPrjijPY50e8dSD0nBNSGJxAYCAOy3o"} 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":"32614dfb72827f66415edf845c502eed"},"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":"14/Jun/2024:16:42:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"32614dfb72827f66415edf845c502eed"} device-1 | {"level":"info","message":"POST /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/websocket 200 21ms","method":"POST","requestID":"32614dfb72827f66415edf845c502eed","responseTime":21,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74' 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":"d35dc02430d869c709f141d8d2954fe4","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/4f371258-f9e5-4a88-af72-4f50d45a4d74"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.R8qj7xtqjmvkaUhTvUXzZtjBM96NLGWuBfSSuorvcOM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"63c701587950c7014eed43384a1880ac","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210256,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383336,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.R8qj7xtqjmvkaUhTvUXzZtjBM96NLGWuBfSSuorvcOM"} 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":"63c701587950c7014eed43384a1880ac"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:13.908150760Z"}]},"request_id":"b4c30784-2f84-428f-9bbb-73525ce166d9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383336.131561} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"63c701587950c7014eed43384a1880ac"},"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":"14/Jun/2024:16:42:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74? 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":"63c701587950c7014eed43384a1880ac"} device-1 | {"level":"info","message":"GET /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74? 200 17ms","method":"GET","requestID":"63c701587950c7014eed43384a1880ac","responseTime":17,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74?"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"d35dc02430d869c709f141d8d2954fe4","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"d35dc02430d869c709f141d8d2954fe4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.R8qj7xtqjmvkaUhTvUXzZtjBM96NLGWuBfSSuorvcOM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9f1ebeb3d94013e3b592be9ad385ef43","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.219072,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383336,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzNn0.R8qj7xtqjmvkaUhTvUXzZtjBM96NLGWuBfSSuorvcOM"} 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":"9f1ebeb3d94013e3b592be9ad385ef43"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"1e65b668-607e-44ef-8adb-ba0f490787ee","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383336.1560366} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f1ebeb3d94013e3b592be9ad385ef43"},"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":"14/Jun/2024:16:42:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 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":"9f1ebeb3d94013e3b592be9ad385ef43"} device-1 | {"level":"info","message":"GET /devices/eace46f3-5da9-42e7-854e-4300b049f276? 200 16ms","method":"GET","requestID":"9f1ebeb3d94013e3b592be9ad385ef43","responseTime":16,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.141088,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"109e5af0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:49340","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.575378,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"109ea910-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:11.699569152Z"}]},"request_id":"f3392ed4-f9b0-4236-a203-ee8374b8137b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.0537446} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"109ea910-2a6d-11ef-91df-9f2f583abbec"},"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:33742","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"},"timestamp":"2024-06-14T16:42:13.908150760Z"}]},"request_id":"39fb18ab-e2a8-4a98-bbce-6e6ed55e67a6","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.0552182} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"109e5af0-2a6d-11ef-91df-9f2f583abbec"},"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/eace46f3-5da9-42e7-854e-4300b049f276? 200 23ms","method":"GET","requestID":"109ea910-2a6d-11ef-91df-9f2f583abbec","responseTime":23,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74? 200 26ms","method":"GET","requestID":"109e5af0-2a6d-11ef-91df-9f2f583abbec","responseTime":26,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4e18604f-6792-4c4f-9b5f-dd6b0f850b4a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.075997} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.106354,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","rebac_allow":false,"scope_allow":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":"10a2c7c0-2a6d-11ef-91df-9f2f583abbec"},"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/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling 200 14ms","method":"POST","requestID":"10a2c7c0-2a6d-11ef-91df-9f2f583abbec","responseTime":14,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26588352-2fae-49c3-a7d4-13a7872f56c8","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.0921838} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.803879,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","rebac_allow":false,"scope_allow":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":"10a55fd0-2a6d-11ef-91df-9f2f583abbec"},"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/eace46f3-5da9-42e7-854e-4300b049f276/signaling 200 13ms","method":"POST","requestID":"10a55fd0-2a6d-11ef-91df-9f2f583abbec","responseTime":13,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"20229f45-c7b3-4116-a8ba-fa97c2c8f1e0"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"72d1a300-0db9-45de-8912-595463f57951"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a125de40-e2fd-4854-b24a-b17d4982f956"}]},"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/eace46f3-5da9-42e7-854e-4300b049f276"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.231741,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383333,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzM30.jUo0--2ifbKUqWa9NsTzVFHvoFRw1yhxWe3BTRrlPB8"} 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":"10a7f7e0-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","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%2Fde268c9b-880f-468e-89e1-b51055be53cd'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]}},"raw_response":{},"request_id":"4ac513c3-72f3-4d00-8580-5ff0bc313212","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.1213355} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ebd698b8-4d95-49c1-950f-5cf5c43f641c","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.121747} 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":"10a7f7e0-2a6d-11ef-91df-9f2f583abbec"},"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/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 39ms","method":"POST","requestID":"10a7f7e0-2a6d-11ef-91df-9f2f583abbec","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b10d29a2-32eb-4ea3-83b7-6f03cf826921","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.180628} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.869803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","rebac_allow":false,"scope_allow":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":"10b31b70-2a6d-11ef-91df-9f2f583abbec"},"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/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling 200 10ms","method":"POST","requestID":"10b31b70-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3cfc6552-13d4-4166-bc01-272c7bd7356a","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.1932585} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.269027,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","rebac_allow":false,"scope_allow":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":"10b51740-2a6d-11ef-91df-9f2f583abbec"},"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/eace46f3-5da9-42e7-854e-4300b049f276/signaling 200 10ms","method":"POST","requestID":"10b51740-2a6d-11ef-91df-9f2f583abbec","responseTime":10,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4c9a47d452dffa6e8d308314bb2860bd","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":"new","url":"http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"}}},"level":"info","message":"received a callback"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"4c9a47d452dffa6e8d308314bb2860bd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"4c9a47d452dffa6e8d308314bb2860bd","responseTime":5,"status":200,"url":"/callbacks/experiment"} device-1 | {"data":{"peerconnection":"f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","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/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","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":"f5b7f25ad775ab9635b246455c31cd7e","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/eace46f3-5da9-42e7-854e-4300b049f276"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4c2cc3f-c783-4ff9-bdd4-423e22e206d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d11fd43e-f23a-4c73-b9a1-e70952a8723d","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.2614143} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.402445,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","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":"10bf9e90-2a6d-11ef-91df-9f2f583abbec"},"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/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8 200 7ms","method":"GET","requestID":"10bf9e90-2a6d-11ef-91df-9f2f583abbec","responseTime":7,"status":200,"url":"/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"f5b7f25ad775ab9635b246455c31cd7e","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"f5b7f25ad775ab9635b246455c31cd7e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca619bc3-a58c-422b-9bfa-f48957a8467b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.2866414} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.061936,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","rebac_allow":false,"scope_allow":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":"10c36f20-2a6d-11ef-91df-9f2f583abbec"},"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/eace46f3-5da9-42e7-854e-4300b049f276/signaling 200 8ms","method":"POST","requestID":"10c36f20-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1782bb36-3274-41d7-9628-adbbf1646d59","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.2961767} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.538199,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","rebac_allow":false,"scope_allow":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":"10c4f5c0-2a6d-11ef-91df-9f2f583abbec"},"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/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling 200 8ms","method":"POST","requestID":"10c4f5c0-2a6d-11ef-91df-9f2f583abbec","responseTime":8,"status":200,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"44e64960ec8d6f892716d5a53c353ae8","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.700396,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383339,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"44e64960ec8d6f892716d5a53c353ae8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"} gateway-1 | {"time_local":"14/Jun/2024:16:42:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2 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":"44e64960ec8d6f892716d5a53c353ae8"} experiment-1 | {"level":"info","message":"GET /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2 200 13ms","method":"GET","requestID":"44e64960ec8d6f892716d5a53c353ae8","responseTime":13,"status":200,"url":"/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bcb2e1eda79560a7a692f34674db14d8","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.160563,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"experiment:http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2","object_type":"experiment","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383339,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o"} 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":"bcb2e1eda79560a7a692f34674db14d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.218981,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"peerconnection:http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383339,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o"} 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":"10d12ac0-2a6d-11ef-91df-9f2f583abbec"},"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/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4c2cc3f-c783-4ff9-bdd4-423e22e206d8","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4c2cc3f-c783-4ff9-bdd4-423e22e206d8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4c2cc3f-c783-4ff9-bdd4-423e22e206d8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"98aa3a34-185b-400e-bc0e-30286d3273da","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.3989394} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac1d055f-3b2a-45e9-b562-c037d39a27e5","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.39927} 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":"10d12ac0-2a6d-11ef-91df-9f2f583abbec"},"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)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d39a25c0fe8bd4b8ba6db15c63b8fcac","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"116515300bdbaadaf030c59daf8a268d","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/eace46f3-5da9-42e7-854e-4300b049f276"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8 204 36ms","method":"DELETE","requestID":"10d12ac0-2a6d-11ef-91df-9f2f583abbec","responseTime":36,"status":204,"url":"/peerconnections/f4c2cc3f-c783-4ff9-bdd4-423e22e206d8"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.415709,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","payload":{"admin":true,"edgeToken":"fUga_ta1t4ow_sbjgP1ZcUvQG_zB5eyjsU-6A68u9YYTp0-kkbIXhiEdA9BokhPOSFo7lbh5nQpZoyg3fQQgWQ","iat":1718383339,"sub":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd","subject_alt":"http://localhost/users/de268c9b-880f-468e-89e1-b51055be53cd"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2RlMjY4YzliLTg4MGYtNDY4ZS04OWUxLWI1MTA1NWJlNTNjZCIsImVkZ2VUb2tlbiI6ImZVZ2FfdGExdDRvd19zYmpnUDFaY1V2UUdfekI1ZXlqc1UtNkE2OHU5WVlUcDAta2tiSVhoaUVkQTlCb2toUE9TRm83bGJoNW5RcFpveWczZlFRZ1dRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MzMzOX0.esKW31Dd_V2dVnrNBtY9iD_20HbGfqkM5SNZZG4Ot5o"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","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":"10d71e30-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74'"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"4ece9e6c-2d4a-44c0-9c7d-0fbb65f25f69","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.42987} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4124f8cf-16d8-47ae-bb06-b8cb5bf7191f","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.4302812} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"194","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"10d71e30-2a6d-11ef-91df-9f2f583abbec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"DELETE /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74 204 35ms","method":"DELETE","requestID":"10d71e30-2a6d-11ef-91df-9f2f583abbec","responseTime":35,"status":204,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feace46f3-5da9-42e7-854e-4300b049f276","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e47be288-16c4-4475-9b02-1000144785d2","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.4791095} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.182469,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276","object_type":"device","rebac_allow":false,"scope_allow":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":"10e01ee0-2a6d-11ef-91df-9f2f583abbec"},"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/eace46f3-5da9-42e7-854e-4300b049f276/signaling 200 16ms","method":"POST","requestID":"10e01ee0-2a6d-11ef-91df-9f2f583abbec","responseTime":16,"status":200,"url":"/devices/eace46f3-5da9-42e7-854e-4300b049f276/signaling"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd0db3d3-733d-4991-ae4d-48f469d012a2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd0db3d3-733d-4991-ae4d-48f469d012a2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fde268c9b-880f-468e-89e1-b51055be53cd"}]},"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","writes":null},"raw_response":{},"request_id":"b689f9e5-952b-4573-94a5-a77963c5829b","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.4871225} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"raw_response":{"authorization_model":{"id":"01J0BSY1T6CJB6VAB3R87H0XY9","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf433dfb-7bd4-44ba-ad6d-9406cc683170","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.487509} 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":"bcb2e1eda79560a7a692f34674db14d8"},"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:57580","level":"info","msg":"Received request.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:33742","raw_request":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","contextual_tuples":null,"store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4f371258-f9e5-4a88-af72-4f50d45a4d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ccb9f4f-6b48-4940-bba9-f13f527198a1","store_id":"01J0BSY1RYT7WN3JGK2Q67HCF2","subsystem":"openfga","timestamp":1718383339.4958262} authorization-1 | {"client_addr":"127.0.0.1:57580","level":"info","msg":"Sent response.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.870862,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:42:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","openfga":{"authorization_model_id":"01J0BSY1T6CJB6VAB3R87H0XY9","store":"01J0BSY1RYT7WN3JGK2Q67HCF2"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74","object_type":"device","rebac_allow":false,"scope_allow":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":"10e30510-2a6d-11ef-91df-9f2f583abbec"},"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/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"10e30510-2a6d-11ef-91df-9f2f583abbec"} device-1 | {"level":"info","message":"POST /devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/signaling 404 12ms","method":"POST","requestID":"10e30510-2a6d-11ef-91df-9f2f583abbec","responseTime":12,"status":404,"url":"/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74/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/cd0db3d3-733d-4991-ae4d-48f469d012a2"} gateway-1 | {"time_local":"14/Jun/2024:16:42:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2 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":"bcb2e1eda79560a7a692f34674db14d8"} experiment-1 | {"level":"info","message":"DELETE /experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2 204 203ms","method":"DELETE","requestID":"bcb2e1eda79560a7a692f34674db14d8","responseTime":203,"status":204,"url":"/experiments/cd0db3d3-733d-4991-ae4d-48f469d012a2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 159ms","method":"POST","requestID":"d39a25c0fe8bd4b8ba6db15c63b8fcac","responseTime":159,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.162","http_referrer":"","http_user_agent":"node-fetch","requestID":"d39a25c0fe8bd4b8ba6db15c63b8fcac"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 157ms","method":"POST","requestID":"116515300bdbaadaf030c59daf8a268d","responseTime":157,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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.162","http_referrer":"","http_user_agent":"node-fetch","requestID":"116515300bdbaadaf030c59daf8a268d"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/eace46f3-5da9-42e7-854e-4300b049f276' closed"} gateway-1 | {"time_local":"14/Jun/2024:16:42:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2406","request_time":"3.475","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2daa580406c0bca410c5104fc0d67622"} gateway-1 | {"time_local":"14/Jun/2024:16:42:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"5.822","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a691d982c15e7814bbb444eeb86076e2"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4f371258-f9e5-4a88-af72-4f50d45a4d74' 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":"606f8adcd42619405d6bae723225a354","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/4f371258-f9e5-4a88-af72-4f50d45a4d74"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"606f8adcd42619405d6bae723225a354","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:42: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":"606f8adcd42619405d6bae723225a354"} authorization-1 exited with code 0 device-1 exited with code 0 federation-1 exited with code 0 authentication-1 exited with code 0 experiment-1 exited with code 0 gateway-1 exited with code 0